当应用程序在后台模式下工作时,CoreData错误/exception
我正在做一个multithreading的CoreBluetooth应用程序,其中iPhone正在作为一个中央,扫描(基于UI交互)的外设,然后连接和处理,导致应用程序的CoreData模型的各种更改,用于存储用户可以访问的不同外设的状态(而不必在用户每次启动应用程序时连接到它们)。
用户基本上通过UI请求与外围设备的连接,然后UI发起asynchronous工作者线程,尝试在特定的时间范围内(例如几分钟)完成请求,否则向UI报告失败/超时。
一切工作正常,但我现在刚开始添加对后台执行的支持,因为用户很可能会启动asynchronous工作线程,开始扫描BLE外设,然后locking手机并放在口袋里,当外围设备到达时,期待事物发挥作用。
然而,蓝牙智能的东西,他们应该(外设发现,连接和处理),但我突然得到的CoreDataexception;
CoreData: error: exception during newFetchedPKsForSourceID: I/O error for database at /var/mobile/Applications/8640B48D-8744-436A-A083-C39F63FBFB3F/Documents/Model.sqlite. SQLite error code:266, 'not an error' errno:1 with userInfo of { NSFilePath = "/var/mobile/Applications/8640B48D-8744-436A-A083-C39F63FBFB3F/Documents/Model.sqlite"; NSPOSIXErrorDomain = 1; NSSQLiteErrorDomain = 266; } CoreData: error: exception during newFetchedPKsForSourceID: authorization denied with userInfo of { NSFilePath = "/var/mobile/Applications/8640B48D-8744-436A-A083-C39F63FBFB3F/Documents/Model.sqlite"; NSSQLiteErrorDomain = 23; } CoreData: error: exception during newFetchedPKsForSourceID: authorization denied with userInfo of { NSFilePath = "/var/mobile/Applications/8640B48D-8744-436A-A083-C39F63FBFB3F/Documents/Model.sqlite"; NSSQLiteErrorDomain = 23; } CoreData: error: exception during newFetchedPKsForSourceID: authorization denied with userInfo of { NSFilePath = "/var/mobile/Applications/8640B48D-8744-436A-A083-C39F63FBFB3F/Documents/Model.sqlite"; NSSQLiteErrorDomain = 23; } *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'I/O error for database at /var/mobile/Applications/8640B48D-8744-436A-A083-C39F63FBFB3F/Documents/Model.sqlite. SQLite error code:266, 'not an error' errno:1'
所以,总之, 一切都很好,只要我不把应用程序放在后台执行模式,这对我来说表明线程和同步/合并/ CoreData问题已经正确设置。 但是,当应用程序进入后台时,某些东西会改
期待您的想法和想法,
/马库斯
- NSFetchedResultsController是否观察到永久存储的所有更改?
- 核心数据sorting描述符与NSDate,iOS与斯威夫特
- coredata keypath nameOfMovie找不到实体<NSSQLEntity Theaters id = 3>
- 访问XCTestCase类中的应用程序委托对象导致misaligned_stack_error_ swift
- 在Core Data中进行大量重量迁移之后试图保存数据
- 核心数据和10 000个audio文件
- 核心数据模型devise – 更改“活动”对象也会更改保存的对象
- 如何检查一个关系是否已经build立 – 核心数据
- 将Core Data与JSON API同步的最有效方法是什么?