CDClosures
实现
*高频操作数据同步优化 *kill、APP后台、崩溃等极端条件下数据同步处理 *并发控制 *精确操作异常信息捕获处理 *关联xcdatamodeld实现model自动注册 *实现model与数据库操作绑定 *CoreData不同版本api兼容 *相对CoreData自身更加友好的接入方式
示例
要运行示例项目,请先克隆仓库,然后在Example目录中运行`pod install`。
// CoreData文件:data.xcdatamodeld
// 包含模型:
// Info {title: String?, message: String?}
// Model {idx: Int32, time: Date?, info: Info?}
do {
try registerCDClosures("data") //第一步注册 CoreData 文件
try Model.delete(where:"idx = 3")
try Model.delete()
try Model.insert(count: 100) { (idx, m) in
m.time = Date()
m.idx = Int32(idx)
}
var i:Info?
try Info.insert(cb: { (info) in
info.title = "title"
info.message = "msg"
i = info
})
try Model.insert() { (m) in
m.time = Date()
m.idx = 101
m.info = i
}
try Model.update(where: "idx = 4") { (m) in
m.time = Date()
}
try Model.select(range: (10, 10), sorts: [("time", .asc)]) { (ms) in
for m in ms {
print("idx:\(m.idx)")
}
}
} catch let e {
print("\(e)")
}
注意事项
1.CDClosures使用throws进行异常信息传递,可以用do{}catch{}
进行捕获
2.CDClosures包括线程锁,禁止在同一个CDClosures的闭包之间嵌套使用
3.CDClosures每次更新闭包执行后0.2秒内无其他更新或app进入后台时,则会进行异步提交
4.CDClosures每个Entity和Class的对应必须唯一
5.CDClosures批量操作,执行前会将内容进行持久化,批量处理会有一定的延迟
安装
CDClosures可以通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中
pod 'CDClosures'
作者
youlianchun, [email protected]
许可证
CDClosures在MIT许可下可用。有关更多信息,请查看LICENSE文件。