2
我已經成功地將地址簿數據存儲在覈心數據中,但我無法檢索它並將其顯示在tableView中。我缺少什麼?如何從核心數據中提取數據並在表格中顯示查看iOS 6
這是我如何從核心數據中獲取數據。
-(void)fetchFromDatabase
{
AddressBookAppDelegate *appDelegate =[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"AddressBook" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDesc];
NSError *error;
self.arrayForTable = [context executeFetchRequest:request error:&error];
NSLog(@"fetched data = %@",[self.arrayForTable lastObject]); //this shows the data
[self.tableView reloadData];
這是我的表視圖配置。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.arrayForTable count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
if ([self.arrayForTable count]>0)
{
NSLog(@" table view content = %@",[self.arrayForTable lastObject]);// this doesn't log
AddressBook *info = [self.arrayForTable objectAtIndex:indexPath.row];
cell.textLabel.text = info.firstName;
}
}
return cell;
}
嘗試在''fetchFromDatabase'方法的末尾添加'[self.tableView reloadData]'。 - 您還應該考慮使用NSFetchedResultsController在表格視圖中顯示Core Data對象。 –
我更新了[self.tableView reloadData];方法 。但結果是一樣的。 – icodes
是否調用了'numberOfRowsInSection'和'cellForRowAtIndexPath'? –