栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

iOS8 Swift:deleteRowsAtIndexPaths崩溃

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

iOS8 Swift:deleteRowsAtIndexPaths崩溃

使用Xpre Core Data Master-
Detail模板项目很容易重现崩溃。通常,当您使用时

NSFetchedResultsController
,您应该真正使用
NSFetchedResultsControllerDelegate
(您已声明但不使用它)。

删除

tableView:commitEditingStyle:forRowAtIndexPath:
方法中的这些行:

tableViewMain.beginUpdates()tableViewMain!.deleteRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.Fade)tableViewMain.endUpdates()

并将这些行添加到您的viewController类中:

func controllerWillChangeContent(controller: NSFetchedResultsController) {    tableViewMain.beginUpdates()}func controller(controller: NSFetchedResultsController!, didChangeSection sectionInfo: NSFetchedResultsSectionInfo!, atIndex sectionIndex: Int, forChangeType type: NSFetchedResultsChangeType) {    switch type {    case .Insert:        tableViewMain.insertSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade)    case .Delete:        tableViewMain.deleteSections(NSIndexSet(index: sectionIndex), withRowAnimation: .Fade)    default:        return    }}func controller(controller: NSFetchedResultsController!, didChangeObject anObject: AnyObject!, atIndexPath indexPath: NSIndexPath!, forChangeType type: NSFetchedResultsChangeType, newIndexPath: NSIndexPath!) {    switch type {    case .Insert:        tableViewMain.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)    case .Delete:        tableViewMain.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)    case .Update:        return        //Should also manage this case!!!        //self.configureCell(tableView.cellForRowAtIndexPath(indexPath), atIndexPath: indexPath)    case .Move:        tableViewMain.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)        tableViewMain.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)    default:        return    }}func controllerDidChangeContent(controller: NSFetchedResultsController!) {    tableViewMain.endUpdates()}

这应该可以解决您的问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号