目前,我的sqlite3应用程序数据库中看不到任何AUser
对象。
这是我创建用户所需的代码。我想念什么吗?该代码没有警告/错误。
AUser *user = [NSEntityDescription insertNewObjectForEntityForName:@"AUser" inManagedObjectContext:_managedObjectContext]; // _managedObjectContext is declared elsewhere
user.name = username; //username is some string declared elsewhere / name is an attribute of AUser
最佳答案
您需要在上下文上执行保存。
NSError* error = nil;
if(![context save:&error]) {
// something went wrong
NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]);
abort();
}
执行保存时,上下文中的数据将保存到持久性存储协调器(因此在SQL存储中)。
附言基于与 @G的讨论。剪切器,在生产中,如果上下文无法保存,则可以正常处理该错误。这意味着不使用会导致应用程序崩溃的
abort()
调用。NSError* error = nil;
if(![context save:&error]) {
// save failed, perform an action like alerting the user, etc.
} else {
// save success
}
关于ios - 创建核心数据托管对象很困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15257498/