gpt4 book ai didi

iphone - NSMutableArray 中的 indexOfObject 返回垃圾值

转载 作者:行者123 更新时间:2023-11-28 18:00:16 27 4
gpt4 key购买 nike

试图获取 NSMutableArray 中对象的索引。它正在返回一些垃圾值,不明白为什么它不返回特定项目的索引。下面是我试过的代码。

NSString *type = [dictRow valueForKey:@"type"];

if([arrSeatSel indexOfObject:type])
{
NSUInteger ind = [arrSeatSel indexOfObject:type];
[arrTotRows addObject:[arrSeatSel objectAtIndex:ind]];
}

类型包含值“Gold”。而arrSeatSel包含

 (
"Gold:0",
"Silver:0",
"Bronze:1"

如何检查。请指导。

最佳答案

您得到的值是 NSNotFound。你得到 NSNotFound 因为 @"Gold" 不等于 @"Gold:0"

你应该试试下面的方法

NSUInteger index = [arrSeatSel indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop){
return [obj hasPrefix:type];
}];

if (index != NSNotFound) {
[arrTotRows addObject:[arrSeatSel objectAtIndex:index]];
}

更新

-indexOfObjectPassingTest: 正在运行以下循环。注意:/* TEST */ 是一些在找到正确索引时返回 true 的代码。

NSUInteger index = NSNotFound;
for (NSUInteger i = 0; i < [array count]; ++i) {
if (/* TEST */) {
index = i;
break;
}
}

在我的第一个示例中,/* TEST */[obj hasPrefix:type]。最终的 for 循环看起来像这样。

NSUInteger index = NSNotFound;
for (NSUInteger i = 0; i < [arrSeatSel count]; ++i) {
if ([arrSeatSel[i] hasPrefix:type]) {
index = i;
break;
}
}

if (index != NSNotFound) {
[arrTotRows addObject:[arrSeatSel objectAtIndex:index]];
}

我更喜欢 -indexOfObjectPassingTest:

[obj hasPrefix:type] 部分只是比较字符串的一种不同方式。阅读 -hasPrefix:文档以获取更多详细信息。

希望这能回答您所有的问题。

关于iphone - NSMutableArray 中的 indexOfObject 返回垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938650/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com