2013-05-06 2 views
0

코어 데이터 오류 (NSObjectInaccessibleException이 발생했습니다)로 인해 iOS (응용 프로그램) 응용 프로그램이 시작될 때 오류가 발생했습니다. 응용 프로그램이 수행하는 첫 번째 작업은 관리되는 개체가있는 테이블보기를 채우는 작업이므로 응용 프로그램은 시작할 때 계속 충돌합니다.코어 데이터 오류로 인해 실행시 응용 프로그램이 충돌 함

질문은 간단합니다. 테스터가 적어도 데이터 손실없이 응용 프로그램을 계속 사용할 수 있도록이 문제를 해결할 수 있습니까?

이 질문에 대해 더 많은 컨텍스트를 제공하기 위해 테이블보기 셀을 아래와 같이 구성하면 응용 프로그램이 충돌합니다. 이 메소드는 tableView:cellForRowAtIndexPath:에서 호출됩니다. 나는 장치 또는 (SQLite는) 데이터베이스에 대한 액세스 권한을 가지고 있지 않기 때문에

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath { 
    // Fetch Store 
    CCDStore *store = [self.fetchedResultsController objectAtIndexPath:indexPath]; 

    // Configure Cell 
    [cell.textLabel setText:[store name]]; // Exception is thrown due to Core Data fault 
    [cell.detailTextLabel setText:[store numberOfLists]]; 
} 

은, 내 생각은 데이터베이스의 일부가 오류의 결과로 손상된 데이터가 포함되어 있습니다.

답변

0

내 앱에서 결함이 발견되면 대개 NSManagedObjectContext을 출시하여 문제가 발생합니다. NSManagedObject이 컨텍스트에서 "가져 왔으며"컨텍스트가 해제되면 개체가 메모리를 확보하기 위해 오류를 발생시킵니다. 따라서 컨텍스트가 존재하는지 확인하면 문제인지 여부를 알 수 있습니다. 그렇다면 ARC를 사용하는 경우 클래스의 인터페이스 파일에서 컨텍스트를 선언하십시오.

+0

이 검사를 수행했지만이 경우에는 문제가되지 않는 것 같습니다. –

0

이 방법은 이상적은 아니지만 문제가되는 행 주위에 @try/@catch을 추가하고 catch에서 오류를 처리하면 앱이 충돌하지 않습니다.

관련 문제