请原谅可能的noob问题。我正在使用Restkit 2.0构建一个应用程序,并且在实现Core Data功能时遇到了问题。在this tutorial之后,我将以下代码添加到我的AppViewController中(所有其他视图控制器都扩展了此类)。
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.shadowImage = [UIImage new];
NSError *error = nil;
NSURL *modelURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Jumplytics" ofType:@"momd"]];
// NOTE: Due to an iOS 5 bug, the managed object model returned is immutable.
NSManagedObjectModel *managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] mutableCopy];
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];
// Initialize the Core Data stack
[managedObjectStore createPersistentStoreCoordinator];
NSPersistentStore __unused *persistentStore = [managedObjectStore addInMemoryPersistentStore:&error];
NSAssert(persistentStore, @"Failed to add persistent store: %@", error);
[managedObjectStore createManagedObjectContexts];
// Set the default store shared instance
[RKManagedObjectStore setDefaultStore:managedObjectStore];
// Override point for customization after application launch.
self.managedObjectContext = managedObjectStore.mainQueueManagedObjectContext;
}
我收到错误:
property managedObjectContext not found on object of type 'AppViewController'
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
您可能不希望在超类中的viewDidLoad
中使用此代码,因为这意味着它正在为每个子类运行。因此,每个VC都有自己的核心数据堆栈。您更希望所有控制器(可能在单一数据控制器中)使用单个Core Data堆栈。
您的错误:
在'AppViewController'类型的对象上找不到属性managedObjectContext
似乎与RestKit无关。这意味着当您没有名为self.managedObjectContext
的属性时,您正在使用managedObjectContext
。您只需添加属性即可引用它。