EK_*_*Day 6 xcode core-data objective-c ios
我得到一个null结果
AppDelegate.h
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
Run Code Online (Sandbox Code Playgroud)
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];
.......
}
Run Code Online (Sandbox Code Playgroud)
我有一个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''
Run Code Online (Sandbox Code Playgroud)
小智 12
在你的viewController.m实现文件中,就在这段代码下面:
- (void)viewDidLoad
{
Run Code Online (Sandbox Code Playgroud)
添加这段代码:
id delegate = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = [delegate managedObjectContext];
Run Code Online (Sandbox Code Playgroud)
我意识到,由于我最初创建项目时没有添加核心数据,因此我丢失了一些在勾选核心数据选项时自动生成的代码。因此,当我在线学习一些教程时,会假定这个自动生成的代码。这就是我搞砸的地方。