在我的应用程序中,用户可以查看自己的统计信息。我像这样从 Parse 中检索一个数组:
...
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
userArray = [objects valueForKey:@"myArray"];
}];
当数组实际包含某些内容时,代码工作得很好......但是如果在 Parse.com 中没有任何内容保存到数组中,我会出错......
例子: 我运行此代码进行测试:
NSLog(@"%lu", (unsigned long)[[userArray objectAtIndex:0] count]);
当数组包含某些内容时,它会记录正确的数字(有效)。但是当数组为空时,我得到这个错误:
"-[NSNull count]: unrecognized selector sent to instance 0x199084fe0"
我不知道发生了什么事..任何人都知道发生了什么事吗?
最佳答案
您得到的不是空数组,而是 NSNull
。您可以阅读更多关于差异的信息 here .
NSNull 的测试很简单。考虑用 nil 替换不是 NSArrays 的值。
id myArray = userArray.firstObject;
myArray = [myArray isKindOfClass:[NSArray class]] ? myArray : nil;
NSLog(@"%i", [myArray count]); //will log 0 because myArray is nil
关于ios - 从解析错误中检索空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108706/