gpt4 book ai didi

ios - 遍历数组然后将当前对象与字符串进行比较

转载 作者:行者123 更新时间:2023-11-29 02:10:15 25 4
gpt4 key购买 nike

我正在尝试遍历 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'

最佳答案

您的问题是您有一个包含三个子数组的数组,每个子数组大概包含一个字符串。你可以看出这一点,因为日志输出中字符串周围有额外的 (),而且它告诉你你试图将选择器发送到 __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:,因为它的性能会更高。

您可能还想重新考虑生成此嵌套数组结构的代码,或者您通常使用的模式,因为它似乎……没有必要。如果没有进一步的信息,就没有什么可做的。

关于ios - 遍历数组然后将当前对象与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29356753/

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