我有一个奇怪的问题。我的项目一直在“// CRASHES”,我得到这个错误代码。
[__ NSCFConstantString countByEnumeratingWithState:objects:count:]:
在str等于passstring的if语句之后它崩溃了。
从[self findMyArray:words];
来调用void方法
单词是一个可变数组,具有“水果”,也是一个可变数组。
[words addObjectsFromArray:fruits];
- (void) findMyArray:(id)array {
NSMutableArray*stoploop;
if ([array isKindOfClass:[NSArray class]] || [array isKindOfClass:[NSMutableArray class]]) {
for (NSMutableArray *temp in array) {
for (NSString *str in temp) {
if ([str isEqualToString:PassedString]) {
//CRASHES
stoploop=temp;
}
}
}
}
if (fruits==stoploop) {
NSLog(@"true");
}
}
答案 0 :(得分:1)
由于fruits
数组包含字符串元素,在添加[words addObjectsFromArray:fruits];
时,fruits
数组中的每个元素都将作为words
数组的元素添加到words
。所以words
数组中的元素也将是字符串。
解决方案:
Sol 1.如果您希望words
的元素应该是数组,请使用[words addObject:fruits];
代替[words addObjectsFromArray:fruits];
,以便其余代码可以使用。
,否则 Sol 2.如果您没有使用Sol 1,则按如下所示更改数组迭代逻辑,
for (NSString *str in array) {
if ([str isEqualToString:PassedString]) {
//CRASHES
stoploop=temp;
}
}