ios - 创建核心数据托管对象很困难

标签 ios objective-c core-data nsmanagedobject

目前,我的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/

相关文章:

iOS 无法从不同的 View Controller 向按钮添加操作

objective-c - 在编写使用 NSDictionary 将变量转换为数字的方法时遇到问题

c# - 双向绑定(bind)可以在 iOS 上使用吗?

ios - Safari web 检查器只显示源、控制台和审计

ios - 在 SKAction 之后移除 FromParent

objective-c - fetchRequestFromTemplateWithName 返回 nil

ios - 不能使用谓词来比较 Magical Record 中的日期

ios - 如何使用 NSCoding 在我的应用程序中保存/加载数据?

html - 媒体查询 iOS 视网膜似乎没有响应

ios - 我如何在结束编辑后编程地转到文本字段