核心数据填充的表无法正确显示

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,因为它存在很多问题。

以上是关于核心数据填充的表无法正确显示的主要内容,如果未能解决你的问题,请参考以下文章

这段代码有啥问题?不从核心数据填充表! iPad

使用存储过程中的表名填充数据集

使用数据集时无法正确绑定水晶报表,显示参数缺失

如何用核心数据填充选择器控制器

DataTables 无法在 Django 和 HTML 中正确显示

从vba中的表填充列表框