2014-02-17 2 views
0

유형의 개체에서 발견되지 않습니다. 가능한 멍청한 질문을하십시오. 저는 Restkit 2.0으로 응용 프로그램을 만들고 코어 데이터 기능을 구현하는 데 문제가 있습니다. this tutorial에 이어 다음 코드를 AppViewController에 추가했습니다. 다른 모든 뷰 컨트롤러는이 클래스를 확장합니다.Restkit 2.0 'managedObjectContext'이 (가)

- (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' 

나는이 문제를 해결하기 위해 무엇을 할 수 있는가?

답변

1

수퍼 클래스의 viewDidLoad에이 코드를 넣지 않으려면 각 서브 클래스에 대해이 코드가 실행 중이어야합니다. 따라서 각 VC는 고유 한 코어 데이터 스택을 갖게됩니다. 모든 컨트롤러 (싱글 톤 데이터 컨트롤러에있을 수도 있음)에서 사용되는 단일 코어 데이터 스택이 필요할 가능성이 큽니다.

귀하의 오류 :

property managedObjectContext not found on object of type 'AppViewController'

가 RestKit 관련이없는 것 같다. managedObjectContext이라는 속성이 없을 때 self.managedObjectContext을 사용하고 있음을 의미합니다. 참조 할 수 있도록 속성을 추가하기 만하면됩니다.

+0

'AppViewController'의 .h/continuation 카테고리에서 더 많은 코드를 추가 할 수 있습니다 ... – Wain

+0

Oh duh. 헤더 파일에 속성을 정의하지 않았기 때문에 오류가 발생했습니다. viewDidLoad에 포함시키지 않는 것이 합리적입니다. 그러면 AppDelegate에서 초기화하는 것이 더 낫겠습니까? –