[__NSCFConstantString countByEnumeratingWithState:objects:count:]:

时间:2015-08-06 07:21:56

标签: ios objective-c xcode

我有一个奇怪的问题。我的项目一直在“// 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");
    } 
}

1 个答案:

答案 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;
    }
}