开发者社区> 问答> 正文

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

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

展开
收起
a123456678 2016-07-19 11:19:21 2732 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
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OpenStack Swift 海量小文件优化之路 立即下载
From Java/Android to Swift iOS 立即下载
Swift在Airbnb的应用实践 立即下载