2010-07-30 5 views
0

저는 매우 기본적인 CoreData 백업 iPhone 애플리케이션을 보유하고 있습니다. 내가 sqlite 파일을 생성하도록 응용 프로그램을 강제하고 난 후에, 그것을 취하여 하나의 레코드로 채워서 tableview에로드를 테스트했습니다.CoreData가 행을 가져 오지 않습니다.

CoreData가 테이블의 행을 찾지 못했기 때문에 나는 걸렸습니다.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return [fetchedResultsController sections] count]; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{  
    id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 
    return [sectionInfo numberOfObjects]; 
} 

첫 번째 함수는 항상 1을 반환하고 두 번째 함수는 항상 0을 반환합니다. tableview는 행이 없다고 생각하기 때문에 cellForRowAtIndexPath에 결코 도달하지 않으므로 아무 데이터도로드되지 않습니다.

그러나 나는 다음과 같은 코드로있는 viewDidLoad 내 테이블 구조를 볼 수 있습니다

if(!managedObjectContext){ 
    managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
} 

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Assessment" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 
for (NSPropertyDescription *property in entity) 
{ 
    NSLog(@"%@", property.name); 
} 
NSError *error = nil; 
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 
[request release]; 

이제, 내가 cellForRowAtIndex에 충돌하지 않기 때문에 내 코드의 나머지 부분에 아무것도 이제까지 NSFetchRequest를 생성 없다고 저를 친다. 그러나 나는 또한이 코드의 대부분을 레서피 예제에 기반을두고 있으며, 같은 방식으로로드하는 것처럼 보입니다 (실제로 작동합니다).

나는 분명히 뭔가를 놓치고 있습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있습니까?

코드는 전체적으로 here에서 찾을 수 있습니다.

답변

2

문제는 가져온 결과 컨트롤러의 설정에서 거의 확실합니다. 잘못된 엔터티, 잘못된 조건 자 등

+0

감사! 어떻게 든 가져온 결과 컨트롤러를 설정하는 것을 간과했습니다. 그것은 단순한 것임을 알았습니다. –

관련 문제