0

업데이트 여기에 핵심 데이터에서로드 된 테이블 뷰를 사용하여 모든 응용 프로그램을 열어서 문제를 재현하는 쉬운 방법이 있습니다. 그런 다음 탭 막대에서 다른 탭을 설정하여 동일한 테이블 뷰를 엽니 다. 그리고 당신이 얻을 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'FooSpelledCorrectly''TabController의 두 번째 테이블보기 - 충돌

나는 tabcontroller 응용 프로그램에서 두 번째 테이블보기가 있고 탭을 선택하면 응용 프로그램이 충돌합니다. 내가 얻을 SIGABRT i like frogs

나는 테이블 뷰의 (h | m) 파일을 복제하여 프로젝트에 추가했습니다. 응용 프로그램 대리인에서 SearchGroupViewController *searchListController2;을 추가하고 원래 tableview를 사용합니다 SearchDestinationsViewController *searchListController;

나는 간단한 것을 놓치고 있어야한다고 생각합니다. 어떤 아이디어가 필요해? 두 번째 컨트롤러를 만들어야합니까? 어떤 도움 또는 포인터에 대한

2011-12-07 13:11:46.367 CoveredBridges[5762:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Recipe'' 
*** Call stack at first throw: 

감사 : 모두하는 .m 파일 fetchedResultsController

- (NSFetchedResultsController *)fetchedResultsController { 

    // Set up the fetched results controller if needed. 
    if (fetchedResultsController == nil) { 
     // Create the fetch request for the entity. 
     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
     // Edit the entity name as appropriate. 
     NSEntityDescription *entity = [NSEntityDescription entityForName:@"FooSpelledCorrectly" inManagedObjectContext:managedObjectContext]; 
     [fetchRequest setEntity:entity]; 

     NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"state" ascending:YES];// was name 

     NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 

     NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1,sortDescriptor2, nil];// was 2// sortDescriptor, 

     [fetchRequest setSortDescriptors:sortDescriptors]; 

     // Edit the section name key path and cache name if appropriate. 
     // nil for section name key path means "no sections". 
     NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"state" cacheName:nil];//@"state" 
     aFetchedResultsController.delegate = self; 
     self.fetchedResultsController = aFetchedResultsController; 

     //letters = [aFetchedResultsController valueForKey:@"alphabetIndex"]; 

     [aFetchedResultsController release]; 
     [fetchRequest release]; 
     //[sortDescriptor release]; 
     [sortDescriptor1 release]; 
     [sortDescriptor2 release]; 
     [sortDescriptors release]; 
    } 

충돌 로그를 구현! 로버트

+0

"크래시"라는 용어가있는 질문에서 모두가 가장 먼저 알아야 할 것은 충돌 로그입니다. 충돌 로그는 어디에 있습니까? 크래시가 없으면 전체 시간을 낭독하고 잘못된 점을 파악합니다. – 0x8badf00d

+1

아마도 멍청한 질문 일지 모르지만 핵심 데이터 스키마에서 'Recipe'라는 이름으로 정의 된 엔티티가 있습니까? 그렇다면 잘못 입력 했습니까? –

+0

예. 첫 번째 (초기) 테이블 뷰에서 모두 작동합니다. 그것이 죽는 두 번째 탭 (tableview)에 있습니다. – roberthuttinger

답변

0

즉, 답변은 각보기에서 데이터를 인스턴스화하고 완료되면 viewDidLoad에서 해제하는 것이 었습니다. 이전에 델리게이트에서 앱을로드하고 공유했습니다. 아마 내가 존재를 확인할 수 있었 을까? 이제 작동하며 공유하고 싶었습니다.

managedObjectContext = nil; 
managedObjectContext = [(RecipesAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyAwesomeData" inManagedObjectContext:managedObjectContext]; 
    [fetchRequest setEntity:entity]; 

    NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"state" ascending:YES]; 

     NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 

    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1,sortDescriptor2, nil]; 

    [fetchRequest setSortDescriptors:sortDescriptors]; 

     NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"state" cacheName:nil]; 
     aFetchedResultsController.delegate = self; 
     self.fetchedResultsController = aFetchedResultsController; 

    [aFetchedResultsController release]; 
    [fetchRequest release]; 
    [sortDescriptor1 release]; 
    [sortDescriptor2 release]; 
    [sortDescriptors release]; 
관련 문제