swift coredata NSFetchedResultsController 构建分区表

NSFetchedResultsController  一个较实用的查询类,很简单的实现分区展示、删除等功能

1.创建 tableview 和  NSFetchedResultsController 对象(fetchController)

2.用fetchController对象去查询表:必须绑定一个  NSFetchRequest(设定查询表),必须绑定排序描述符 NSSortDescriptor 并且指定排序字段。然后执行查询

3.调用表协议方法,并穿插fetchController来获取各种参数

4.删除数据库及表cell,这里特别要注意,删除的时候很有很能出现crash,本人在开发过程中尝试过这两种原因

A。删除cell 和 section 的时候,判断错误。不知道什么时候删除section

B。删除数据库成功,但是也没依然crash,或许提示  invalid number of rows in section  类似代码 (意思是删除后没有及时刷新)。这事需要条用fetchController的协议方法

controllerDidChangeContent 来刷新表

至此,coredata分区表展示完成,希望可以在以后开发中帮助到大家

时间: 2024-11-08 09:00:57

swift coredata NSFetchedResultsController 构建分区表的相关文章

Swift CoreData 的奇怪问题

今天尝试了一下Swift CoreData 遇到一个很奇怪的问题: 当运行项目的时候, 会提示, 找不到与实体对应的class 文件,但在实体中,文件确实是创建过的,也实际存在 运行到这个地方, xcode不会死掉,当点击"step over"的时候, 会继续执行 当我要输出 取到的结果时, 又会提示:NSArray element failed to match the swift array element type 怎么调试都无法通过, 后来经过查找资料才知道,需要在与实体对应的

Step by Step Do IOS Swift CoreData Simple Demo

简单介绍 这篇文章记录了在 IOS 中使用 Swift 操作 CoreData 的一些基础性内容,因为缺乏文档,基本上都是自行实验的结果.错漏不可避免,还请谅解. 部分内容借鉴了 Tim Roadley 的<Learning.Core.Data.for.iOS(2013.11)>, 这本书主要介绍 ObjC的 CoreData . 创建一个新 XCode 项目 创建一个新的 XCode 项目. 创建一个 Empty Application 填写项目相关信息,如设置项目名称为: SwiftCor

swift coredata

接触swift有段时间,搞定通讯.数据库基本上已经够普通开发使用. coredata一直是官方推荐使用的数据存储方式,以下即为普通数据存储方式及代码 1.首先要勾选工程中使用coredata数据存储方式,系统会自动生成所需相关代码 2.创建实体(Entity).属性(Attributes)并选择属性的数据类型 对比来说,实体=表(首字母必须大些),属性=字段,并且指定字段类型 (首字符必须小写),如命名不规范,xcode会自动警告提示 属性数据类型多种(Int.Double.String.Dat

Swift中使用构建配置来支持条件编译-b

在Objective-C中,我们经常使用预处理指令来帮助我们根据不同的平台执行不同的代码,以让我们的代码支持不同的平台,如: 1 2 3 4 5 6 7 8 9 #if TARGET_OS_IPHONE     #define MAS_VIEW UIView              #elif TARGET_OS_MAC     #define MAS_VIEW NSView #endif 在swift中,由于对C语言支持没有Objective-C来得那么友好(暂时不知swift 2到C的支持

swift CoreData中CoreData: warning: Unable to load class named问题

问题 用swift创建CoreData项目时,操作CoreData Modal时,出现下面错误 CoreData: warning: Unable to load class named 'Book' for entity 'Book'. Class not found, using default NSManagedObject instead. 解决办法 1. 在book.swift 中添加 @objc(Book) 2. 修改CoreData模板 /Applications/Xcode.ap

swift coredata relationship

coredata relationship 开发过程有很多细节需要大家注意.稍有不慎就会困在某个地方无法动弹. 创建Entity  ContactsDetail(成员)和 ContactsGroup(组) ContactsDetail添加属性,并设置属性value类型 ContactsGroup添加属性,并设置属性value类型 ContactsDetail添加relationship,起名字.并Destination为ContactsGroup,Inverse选定为detail.Delete

Swift CoreData 增删改查

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #ffffff; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0

iOS CoreData 增删改查详解

最近在学习CoreData, 因为项目开发中需要,特意学习和整理了一下,整理出来方便以后使用和同行借鉴.目前开发使用的Swift语言开发的项目.所以整理出来的是Swift版本,OC我就放弃了. 虽然Swift3 已经有了,目前整理的这个版本是Swift2 的.Swift 3 的话有些新特性. 需要另外调整,后续有时间再整理. 继承CoreData有两种方式: 创建项目时集成 这种方式是自动继承在AppDelegate里面,调用的使用需要通过UIApplication的方式来获取AppDelega

FetchedResultsController与Core Data

NSFetchedResultsController是为了让视图及时响应Model层的变化而设计的,更具体的将是配合刷新UITableView上的数据. 一般而言,NSFetchedResultsController的实例是由UITableViewController的实例初始化并持有. 创建后,我们将给它分配一个代理(NSFetchedResultsControllerDelegate),当Core Data中的model有变化时,通过代理通知到对应的tableView. 对象的新增:新增的对