2010-07-30 42 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]; 
} 

第一函數總是返回一個和第二函數總是返回零。由於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]; 

,這讓我感到沒有在我的代碼的其餘不斷產生NSFetchRequest因爲我從不打cellForRowAtIndex。但我也基於食譜示例中的大部分代碼,它看起來像以同樣的方式加載(並且它實際上工作)。

我敢肯定我在這裏錯過了一些明顯的東西,有人可以指出我在正確的方向嗎?

該代碼可以在其中找到完整here

回答

2

這個問題幾乎可以肯定地發生在獲取結果控制器的設置中。錯誤的實體,錯誤的謂詞等。

+0

謝謝!我不知何故忽略了設置抓取的結果控制器。知道這是簡單的事情。 – 2010-07-30 20:22:46