核心数据填充的表无法正确显示
Posted
技术标签:
【中文标题】核心数据填充的表无法正确显示【英文标题】:Table Populated by Core Data doesn't Display Properly 【发布时间】:2011-08-18 13:31:51 【问题描述】:我正在填充一个 TableViewController,给定一个“SampleClass”类的 NSManagedObjects 数组。尽管获取的数组中的对象数量正确返回(即,如果表格要显示 59 个对象,则创建 59 行),但单元格的其他参数显示“有问题”。
例如,应该有一个由object.name设置的标题,“null”直到您单击该单元格,选择另一个单元格,然后返回到初始单元格。
我试过 `[tableview reloadData]' 在视图中会出现,但加载数据仍然需要很长时间。有没有更好的方法来填充单元格而不是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
Class *classObject = [dataArray objectAtIndex:indexPath.row];
cell.textLabel.text = [classObject name].....
dataArray 从 coreData 调用指向 NSMutableFetchedArray
注意:与实际 iPad 相比,模拟器错过了填充更多单元格。但是,一旦选择了另一个选项卡,当您返回该选项卡时,所有单元格都会正确显示。`
【问题讨论】:
【参考方案1】:您可能想查看 NSFetchedResultsController
http://developer.apple.com/library/ios/ipad/#documentation/CoreData/Reference/NSFetchedResultsController_Class/Reference/Reference.html
这是一个特殊的类,专门用于使用核心数据查询的结果填充表。
在过去使用核心数据时,我总是使用这个类而不是其他方式。
【讨论】:
如果您的目标 SDK 低于 4.0,请注意 NSFetchedResultsController,因为它存在很多问题。以上是关于核心数据填充的表无法正确显示的主要内容,如果未能解决你的问题,请参考以下文章