这是我想要做的事情:
NSMutableArray *objectNames = [[NSMutableArray alloc] init];
for (Object *o in objectList){
if (![objectNames containsObject:o.name]) {
[objectNames addObject:o.name];
}
}
我正在尝试浏览一个对象数组,然后获取对象名称(一个字符串)并将其添加到objectNames的字符串数组中。
此代码在模拟器中工作正常。但是当我在设备上运行时,我得到了这个错误。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFArray insertObject:atIndex:]: attempt to insert nil'
答案 0 :(得分:4)
objectList中的一个或多个对象将其name属性设置为nil。这导致您尝试将nil插入objectNames,这会给您例外。
如果一个对象的名称为nil是可以的,那么你需要做的是在插入objectNames之前检查它:
NSMutableArray *objectNames = [[NSMutableArray alloc] init];
for (Object *o in objectList){
if (name && ![objectNames containsObject:o.name]) {
[objectNames addObject:o.name];
}
}
答案 1 :(得分:1)
看起来您的某个对象没有正确设置name