我有一条错误消息'终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [__ NSArrayM insertObject:atIndex:]:object不能为nil'
问题出在fetchedObjects上。
这是因为它尝试向NSArray添加nil值。我不明白的是,为什么有空值。
有关信息:表是我的sqlite表的名称,标签只是我的表的一个字段。
- (NSMutableArray*) getLabel:(NSString *)label fromTable:(NSString *)table
{
NSMutableArray * ret = [NSMutableArray new];
NSError *error = nil;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:table
inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
Class theClass = NSClassFromString(table);
id info = [[theClass alloc] initWithEntity:entity insertIntoManagedObjectContext:managedObjectContext];
for (info in fetchedObjects)
{
[ret addObject:[info valueForKey: label]];
}
return ret;
}
你有什么想法?提前致谢。
这是一个常见的错误。我想你应该看看你的专栏:
id info = [[theClass alloc] initWithEntity:entity insertIntoManagedObjectContext:managedObjectContext];
如果你想获得更多信息,请看这里:Use NSManagedObject class without initWithEntity:?
你应该insertIntoManagedObjectContect:nil