2012-06-11 3 views
0

iOS에서 코어 데이터를 사용 중이고 NSFetchRequest에 문제가 있습니다. 내가 NSFetchRequest과 같이 작성하는 경우NSFetchRequest를 디버깅하는 방법

: 내 레시피 엔티티의

NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"]; 

다음 생성 인스턴스를 예상대로, 그들은 페치 요청의 결과에 나타납니다. 하지만 일단 데이터베이스를 저장하고 그들을 다시로드하려고하면 가져 오기 요청은 결과를 반환하지 않습니다.

데이터베이스가 오류없이 성공적으로 저장되고 SQLite 데이터베이스 브라우저를 사용하면 모든 엔티티가 기본 SQLite 데이터베이스에 저장되었음을 알 수 있습니다. 하지만 그들은로드하지 않습니다 ...

NSFetchRequest의 후드에서 무슨 일이 일어나고 있는지 쉽게 진단 할 수있는 방법이 있습니다. 그래서 내 엔티티가로드되지 않는 이유를 알 수 있습니까?

// load recipes unsorted 
NSFetchRequest* request = [ NSFetchRequest fetchRequestWithEntityName:@"Recipe"]; 
request.sortDescriptors = [[NSArray alloc] init]; 

NSFetchedResultsController* frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.recipeDatabase.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; 

// fetch results empty 
NSError* error = nil; 
[frc performFetch:&error];  
+0

데이터를로드하고 표시하는 방법에 대해 몇 가지 코드를 공유 할 수 있습니까? – Pfitz

답변

0

죄송합니다 .... 내 문제를 발견했습니다. 상태가 UIDocumentStateClosed 일 때 UIManagedDocument을 열지 않았습니다. 문서가 닫혀 있어도 managedObjectContext 문서에서 작업 할 때는 다른 모든 작업이 작동하는 것처럼 보입니다.