0
我想使用CoreData。我已经在一段时间后创建了这个coreData文件。我正在尝试向文件写入一些值,但上下文始终为空。核心数据 - 上下文为空
- (NSManagedObjectContext *)managedObjectContext {
NSManagedObjectContext *context = nil;
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
context = [delegate managedObjectContext];
if(context == nil)
{
NSLog(@"CONTEXT IS NIL");
}
return context;
}
方法没有错误,但在这里崩溃:
//here is null
NSManagedObjectContext *context = [self managedObjectContext];
// Create a new managed object
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Kwejki" inManagedObjectContext:context];
的情况下是空的。我不知道为什么它是空的,如果我从AppDelegate对象获取此上下文。我在我的应用程序中使用TabBarController,它从第一个选项卡开始。哪里不对?
更新::
@synthesize managedObjectContext = _managedObjectContext;
@synthesize managedObjectModel = _managedObjectModel;
@synthesize persistentStoreCoordinator = _persistentStoreCoordinator;
- (NSManagedObjectContext *)managedObjectContext {
if (self.managedObjectContext != nil) {
return self.managedObjectContext;
NSLog(@"managedOC - != nil");
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
NSLog(@"coordinator - != nil");
//Here I get two errors below "Receiver type NSManagedObjectContext for instance message is a forward declaration"
self.managedObjectContext = [[NSManagedObjectContext alloc] init];
[self.managedObjectContext setPersistentStoreCoordinator:coordinator];
}
return self.managedObjectContext;
}
请发布代码从AppDelegate managedObjectContext方法。 – blazejmar
......如果你是我的员工,请解释为什么你显然认为使用应用程序委托作为一个全能的单身人士是合适的。我怀疑这不是一个有用的评论。 – Tommy
我已更新帖子。我仍然在学习目标 - C @Tommy和我第一次使用CoreData。 – DKM