[英]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.