我正在尝试遍历NSArray并检查objectAtIndex是否等于string

NSLog(@"%@", myArray) // 3 items. 1 of them is "a"
for (id object in myArray)
{
    NSLog(@"What"); // 3 times
    if ([object isEqual:@"a"]) {
        NSLog(@"Hello"); // Never gets executed
    }
}

问题是,if语句中的NSLog永远不会执行?

编辑

(
        (
        a
    ),
        (
        01
    ),
        (
        a
    ),
        (
        03
    )
)

当我将其设置为isEqualToString ,出现此错误:

2015-03-30 14:42:54.206 MyApp[1575:50954] -[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0x7fe721ce3bf0
2015-03-30 14:42:54.215 MyApp[1575:50954] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM isEqualToString:]: unrecognized selector sent to instance 0x7fe721ce3bf0'

#1楼 票数:1 已采纳

您的问题是您有一个包含三个子数组的数组,每个子数组大概包含一个字符串。 您可以这样说是因为日志输出中的字符串周围有多余的(),并且它告诉您您试图将选择器发送给__NSArrayM

快速解决方法:

NSLog(@"%@", myArray) // 3 items. 1 of them is "a"
for (NSArray *array in myArray)
{
    NSLog(@"What"); // 3 times
    if ([array.firstObject isEqualToString:@"a"])
    {
        NSLog(@"Hello"); // Never gets executed
    }
}

但是,正如其他人指出的那样,您可能要使用isEqualToString:因为它会提高性能。

您可能还需要重新考虑生成此嵌套数组结构的代码,或通常使用的架构,因为这似乎……不必要。 没有更多的信息,就没有什么可做的。

  ask by translate from so

未解决问题?本站智能推荐:

1回复

NSPredicate比较相同的字符串数组?

是否可以使用nspredicate比较一个NSArray是否完全等于另一个NSArray字符串? 我需要通过谓词来使用此穹顶,因为它可能会将此谓词添加到复合谓词中。 我要比较的数组是NSDictionary的属性。 所以答案是两者的混合,我确实使用了predicatewithforma
2回复

遍历数组,索引错误

我正在创建一个UIScrollView ,它可以向侧面滚动,并且具有我正在以编程方式添加的许多按钮和标签(与按钮一起)。 我有44个按钮和标签,所以我想通过数组创建它们。 这就是我试图做到的方式(我是一名新手程序员,所以我事实上知道这样做是错误的方式。 请记住, nameArray包
2回复

将数组的每个对象与其他所有对象进行比较

我试图创建一个if语句,像这样: 我希望能够一次检查数组的所有条目中的“大理石”和“所需大理石”是否相同。 我该怎么做?
3回复

基于NSStrings数组从NSArray对象中提取字符串

好吧,这有点模糊,但它让我头疼。 如果你有一个字符串数组 而且你有一个Recipe对象数组 我将如何使用第一个数组创建一个这样的数组: 用它来说,它是取第一个数组中的数字并创建一个recipe_names数组,其中recipe_id匹配数字......
6回复

通过遍历遍历数组的Objective-C问题

我有这段代码,可以从Core Data接受一系列收入对象。 但是行NSLog(@“%@”,总计); 导致EXEC BAD ACCESS错误。 我做错了什么明显的事情吗? 另外,如果我删除日志,则不会在totalIncomes中添加任何内容,在我的头文件中将其声明为NSNumber。
1回复

返回自定义对象而不是字符串的数组的枚举

我在从数组中检索NSString时遇到问题,而不是字符串,我找回了字符串所在的对象。 这是我的结构。 NSMuteableArray > ArrayOfObjects> NSString (此字符串位于对象Array中的每个对象中)。 我正在尝试将字符串分配给tablevi
3回复

对字符串的nsarray进行排序而不是基于字符串

所以我有一个数组,我从Web服务检索没有特定的顺序 例: 我需要对它们进行排序:首先根据具体情况 - 可能是反向字母: 其次,我需要根据他们的'x'计数器部分对它们进行排序: 我知道我可以用蛮力字符串匹配来做到这一点,但我真的想要一个关于如何整齐地做这个的建议,也许是一个正则表达
2回复

NSMutableArray创建每两个对象的子数组,并在末尾插入一个空白字符串

问题 :这是最有效的方法还是有更好的方法? 要求 :创建一个包含唯一(非重复)子数组对象对字符串的对象新数组,最后插入一个空白字符串。 假设在这种情况下,如果我们有一组对象宠物名称(Harley,Jake,Levi,Zoe) NSMutableArray _petNames ,我们将