ios - 向 NSFetchedResultsController 管理的 UITableView 添加额外的行

标签 ios ios5 uitableview nsfetchedresultscontroller

我正在为我的应用程序中的表格使用 UITableViewController,并且我添加了一个 NSFetchedResultsController 以提供要在表格中显示的数据(设置 self 作为委托(delegate))。

但是我想添加一个唯一的单元格作为表格的最后一个单元格,与 NSFetchedResultsController 的谓词生成的项目无关,我希望这个单元格始终位于底部 table 。

我试过简单地向 TableView 数据源中的这些方法添加 1:

- (NSUInteger)numberOfSectionsInTableView:(UITableView *)sender
{
    return [[self.fetchedResultsController sections] count] + 1;
}
- (NSUInteger)tableView:(UITableView *)sender numberOfRowsInSection:(NSUInteger)section
{
    return [[[self.fetchedResultsController sections] objectAtIndex:section] numberOfObjects] + 1;
}

然后捕获像这样生成额外行的情况(该表只有 1 个部分):

- (UITableViewCell *)tableView:(UITableView *)sender
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == [self.fetchedResultsController.fetchedObjects count]) {
        //Generate the last cell in  table.
    } else {
        //Generate the rest of the cells like normal.
    }
    return nil; //To keep the compiler happy.
}

这会检查索引是否是最后一个单元格并适本地处理它。

但是我在运行时仍然收到以下错误:

*** Terminating app due to uncaught exception 'NSRangeException', 
reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

知道是什么原因造成的吗?或者是否有更好的方法向 NSFetchedResultsController 控制的 TableView 添加额外的行?

最佳答案

如果您实现文档中指示的所有数据源方法(更新等),则获取的结果 Controller 与 TableView 紧密相关。它会变得非常困惑和骇人听闻。

您的“额外行”可以改为表格的页脚 View 吗?这将永远在底部。使它看起来像一个单元格并没有太多的工作,尽管从它的外观来看,您无论如何都希望它看起来与其他单元格不同。

关于ios - 向 NSFetchedResultsController 管理的 UITableView 添加额外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9604410/

相关文章:

ios - UITableViewController - 计数部分

ios - 无法在 UIScrollView 中的 UITableView 上同时向上/向下滚动和向左/向右滚动

ios - 导入和 iOS Today 扩展不起作用

ios - 对使用 UserDefaults 确保删除的项目在 TableView 中保持删除感到困惑

ios - 使用 Storyboard将多个 UITableView 添加到 iPad 应用程序

ios - 如何为新项目指定默认的最低 iOS 版本?

ios - 关于 iOS 内部配置文件过期

ios - 仅锁定主 UIViewController 的方向 - iOS

iphone - 同时支持 iPhone 4 和 iPhone 5 屏幕分辨率的最佳方式是什么? - 仅在 iOS6 中自动布局

ios - UITableView 单元格图像在滚动时不断切换单元格