Ric*_*ble 5 core-data ios ios-app-group
我创建了一个iOS 8应用程序,它使用新的应用程序组功能与扩展共享Core Data存储.它工作得很好,以为我会尝试使用2个独立的应用程序在App Group容器中共享Core Data存储.但是当它在App和Extension之间起作用时,我在与2个应用程序共享时遇到了Core Data存储损坏问题.
根据我打开2个应用程序的顺序,我会得到不同的错误:
Fetches导致此错误:
CoreData:错误:(522)/private/var/mobile/Containers/Shared/AppGroup/[...].sqlite中数据库的I/O错误.SQLite错误代码:522,'不是错误'
保存导致此错误:
CoreData:错误:(11)致命错误./private/var/mobile/Containers/Shared/AppGroup/[...].sqlite中的数据库已损坏.SQLite错误代码:11,'数据库磁盘映像格式错误'
要么:
核心数据:错误:-executeRequest:在SQL执行期间遇到异常=错误:PRIMARY KEY必须与userInfo = {NSFilePath ="/private/var/mobile/Containers/Shared/AppGroup/[...].sqlite"; NSSQLiteErrorDomain = 19; } CoreData:错误:(19)PRIMARY KEY必须是唯一的
小智 0
这是我通过创建一个框架来保存/管理数据库来做到这一点的
使用它来创建您的数据库URL:
[NSFileManagerdefaultManager]containerURLForSecurityApplicationGroupIdentifier:
数据库=[ [UIManagedDocument alloc] initWithFileURL: databaseURL]
[database saveToFileURL: database.fileURL forSaveOperation: UIDocumentSaveForCreating completionHandler: ^(BOOL success)persistentContainer.managedObjectModel必须由框架定义。它不能位于任何应用程序中。他们可以看到它,但它必须是框架捆绑包的一部分。这是基本的大纲,还有很多内容,但有了这些,您应该能够到达那里。玩得开心!| 归档时间: |
|
| 查看次数: |
845 次 |
| 最近记录: |