ios – 由于未捕获的异常’NSInvalidArgumentException’而终止应用程序,原因:’entityForName:nil不是合法的NSManagedObjectContext

我得到一个null结果

AppDelegate.h

@property (readonly,strong,nonatomic) NSManagedobjectContext *managedobjectContext;
@property (readonly,nonatomic) NSManagedobjectModel *managedobjectModel;
@property (readonly,nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

AppDelegate.m

@synthesize managedobjectContext = __managedobjectContext;
    @synthesize managedobjectModel = __managedobjectModel;
    @synthesize persistentStoreCoordinator = __persistentStoreCoordinator;

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
          Person *newPerson = [NSEntityDescription
          insertNewObjectForEntityForName:@"Person"
          inManagedobjectContext:self.managedobjectContext];
          .......

    }

我有一个xcdatamodeld文件,其实体为Person,属性为name.我从NSManagedobject创建了一个Person.h和.m文件.

为什么我的输出结果为null.

Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '+entityForName: nil is not a legal NSManagedobjectContext parameter searching for entity name 'Person''

解决方法

在你的viewController.m实现文件中,就在这代码下面:
- (void)viewDidLoad
{

添加这段代码

id delegate = [[UIApplication sharedApplication] delegate];
    self.managedobjectContext = [delegate managedobjectContext];

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...