2015-01-15 4 views
0

IOS에 익숙하지 않고 핵심 데이터에 대한 자습서를 작성하려고합니다. 다음 코드가 컴파일되었지만 충돌합니다. 중단 점은 아래의 오류를 보여 주지만 그것이 의미하는 것이나 해결 방법을 알 수는 없습니다.ios/xcode : NSManagedObjectContext에서 코어 데이터 오류 발생

다음
managedObjectContext = (NSmanagedObjectContext *) nil 

무엇 콘솔 프로그램입니다 : Tutorial. 다음은 여기에

- (void)viewDidLoad { 
     [super viewDidLoad]; 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity =[NSEntityDescription entityForName:@"FailedBankInfo" inManagedObjectContext:managedObjectContext]; 
    [fetchRequest setEntity:entity]; 
      NSError *error; 
      self.failedBankInfos = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
      self.title = @"Failed Banks"; 
    } 

오류입니다 .. 코드입니다.

2015-01-14 19:28:50.084 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.086 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.087 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.088 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.093 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Zip: 12345 
    2015-01-14 19:28:50.094 coredata-wend[39693:1857624] Name: Test Bank 
    2015-01-14 19:28:50.094 coredat 

a-wend[39693:1857624] Zip: 12345 
(lldb) 

이 문제를 해결하는 방법에 대한 제안이 있으면 감사하겠습니다.

답변

2

오류 메시지가 아니거나 적어도 완전한 오류 메시지는 아닙니다. 그러나 그것이 맞다면 거의 자체적으로 설명 할 수 있습니다 : managedObjectContext은 아무런 값도 지정되지 않았 음을 의미합니다. 엔티티 설명을 조회하려고하면 두 번째 인수에 nil 값을 전달합니다.

게시자가 게시 한 코드에서 nil이 명확하지 않은 이유는 무엇입니까?하지만 처음에는 그 값을 할당하지 않았을 가능성이 큽니다. 어떤 시점에서 그 속성에 NSManagedObjectContext을 할당해야합니다. 앱의 구조에 따라 다르지만,이 뷰 컨트롤러를 만든 코드는 무엇이든있을 수 있습니다.

+0

나는 당신이 의미하는 것을 이해할 수있는 지점에 이르지 못합니다. 이 프로젝트는 사과의 일반 마스터 세부 응용 프로그램에서 파생됩니다. 위의 링크 된 Ray Wenderlich는 응용 프로그램 위임 파일에 다음을 추가합니다. at-property (읽기 전용, 강력한, 비 원자) NSManagedObjectContext * managedObjectContext; _managedObjectContext로 .m 파일에서 합성됩니다. 다음은 메인보기 컨트롤러에도 있습니다 : at-property (비 원자력, 강함) NSManagedObjectContext * managedObjectContext; 이것은 관리되는 ObjectContext와 밑줄이없는 .m 파일에서 합성됩니다. 그게 문제가 될 수 있을까요? – user1904273

+0

앱 위임자와 뷰 컨트롤러에 모두 'managedObjectContext'가있는 것 같습니다. 그러나 존재한다고 선언하는 것만으로는 충분하지 않습니다. 아마도 앱 위임의 어딘가에서 뷰 컨트롤러의 'managedObjectContext'를 앱 위임과 동일한 값으로 설정해야합니다. –

+0

이 메서드는 응용 프로그램 대리인에 있습니다 .- (NSManagedObjectContext *) managedObjectContext { if (_managedObjectContext! = nil) { return _managedObjectContext; } NSPersistentStoreCoordinator * coordinator = [self persistentStoreCoordinator]; if (! 코디네이터) { return nil; } _managedObjectContext = [[NSManagedObjectContext alloc] init]; [_managedObjectContext setPersistentStoreCoordinator : coordinator]; return _managedObjectContext; } 그러나 전화가 들리지는 않습니다. – user1904273

관련 문제