ios - '+entityForName : nil is not a legal NSManagedObjectContext parameter searching for entity name

标签 ios objective-c json core-data

我正在尝试向 CoreData 添加数据。 这是我的代码。但是我收到了这个错误。在这种情况下我该怎么办?

那是我的 ViewController.h

@interface LoginViewController : UIViewController {
    NSManagedObjectContext *managedObjectContext;

}

@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

这是我的 .m 文件

       Person *person = [[Person alloc] initWithJSONString:string];
    NSManagedObjectContext *context = [self managedObjectContext];
    NSManagedObjectContext *object = [NSEntityDescription insertNewObjectForEntityForName:@"Users" inManagedObjectContext:context];
    [object setValue:person.name forKey:@"name"];
    [object setValue:person.id forKey:@"userId"];
    [object setValue:person.statu forKey:@"statu"];
    [object setValue:person.token forKey:@"token"];
    [object setValue:person.sonuc forKey:@"sonuc"];

- (NSManagedObjectContext *)managedObjectContext
{
    if (managedObjectContext != nil) return managedObjectContext;

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {

        managedObjectContext = [[NSManagedObjectContext alloc] init];
        [managedObjectContext setPersistentStoreCoordinator:coordinator];
    }
    return managedObjectContext;
}

这是错误。

'+entityForName: nil is not a legal NSManagedObjectContext parameter searching for entity name 'Users''

谢谢你的帮助

最佳答案

你的问题的核心是你没有想过 persistentStoreCoordinator 是从哪里来的,而且这个对象从来没有被创建过。

您的检查 if (coordinator != nil) 隐藏了这个问题。相反,您应该将目标设置为 coordinator 永远不会是 nil。然后可以删除该检查,或者更好的是,用一个断言替换这种情况:NSAssert(coordinator != nil, @"There is no persistent store coordinator.")

如果持久存储协调器来自此 View Controller 外部,我建议将其作为 View Controller 初始化的一部分传递。如果 View Controller 可以自己设置持久存储协调器,则可以将其作为其初始化的一部分或延迟加载。

关于ios - '+entityForName : nil is not a legal NSManagedObjectContext parameter searching for entity name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911782/

相关文章:

java - Json 字符串转数组

ios - 如何为uiscrollview添加页面控件?

ios - 如何实现类似paper的book view flipping 53

ios - Animate Controls 因 UINavigationBar 的更改而下降

jquery - 无法从网址读取 Json 数据

sql - 如何将我的 json 对象转换为 postgres 表

ios - ios 6.0+ 上 itms 的用户代理是什么?

ios - 为什么我不能在我的prepareForSegue方法中快速转换发送者?

objective-c - 在 Objective-C 中填充对象

iphone - 实现树结构UITableview