繁体   English   中英

应用程序在enumerateObjectsUsingBlock中崩溃

[英]Application crashed in enumerateObjectsUsingBlock

我的应用程序崩溃于以下代码:

NSMutableArray* array = [dict objectForKey:key];
if (array)
{
__block BOOL find = NO;
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString* word = (NSString*)obj;
if ([word isEqualToString:@"jerry"]) {
*stop = YES;
find = YES;
}
}];

崩溃信息是:

1 CoreFoundation 0x2ecd30f2 __53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke (in CoreFoundation) + 90
2 CoreFoundation 0x2ecd3024 -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] (in CoreFoundation) + 232

我想不通,有人知道如何解决这个问题?

尝试使用:

[word isEqualToString:@"jerry"]

尝试这个:

[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
     NSString* word = (NSString*)obj;
     if ([word isEqualToString:@"jerry"]) {
          stop = YES;
          find = YES;
     }

您以错误的方式比较字符串。

尝试这个

NSMutableArray* array = [NSMutableArray arrayWithArray:[dict objectForKey:key]];
if (array)
{
     __block BOOL find = NO;
     [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
     NSString* word = (NSString*)obj;
     if ([word isEqualToString:@"jerry"]) {
          *stop = YES;
          find = YES;
     }
}];

我的钱在您的阵列上,结果证明实际上不是阵列。 从dict中的对象创建并设置数组时,请检查[dict objectForKey:key]实际上是一个数组。

NSMutableArray* array = [dict objectForKey:key];
NSLog(@"class of array:  %@", [[dict objectForKey:key] class]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM