开发者社区> 问答> 正文

Swift2.0如何使用CoreData多线程频繁执行数据库读写

在一个采用Swift2.0编写的IOS APP项目中,需要后台用蓝牙实时获取数据并保存到本地SQLite中进行处理。目前有两个后台线程A和B,A每秒获取一下蓝牙数据,将其保存到数据库中;B定时循环执行遍历数据库,对没有处理的数据进行处理,并更新记录的标志位说明已经处理过。项目采用了CoreData,但每当执行4到5分钟后会报异常造成崩溃。刚接触IOS开发,对多线程数据持久化理解不足,希望有经验的大牛指点一下有什么办法或者比较好的类库能线程安全的支持后台对数据库的频繁读写。

展开
收起
a123456678 2016-07-19 11:19:21 2734 0
1 条回答
写回答
取消 提交回答
  • 问题出现的代码行是do{ try managedObjectContext.save() }catch{...
    异常日志如下:CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. -[__NSCFSet addObject:]: attempt to insert nil with userInfo (null)
    2015-12-15 22:14:31.599 HealthApp[1068:150938] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFSet addObject:]: attempt to insert nil'

    2019-07-17 19:58:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
多IO线程优化版 立即下载