您好我遵循http://commandshift.co.uk/blog/2013/06/06/multiple-persistent-stores-in-core-data/教程并为核心数据创建了多个配置。我的一些实体在Configuration“SQLStorage”中,有些在“InMemory”中。
我希望SQLStorage配置能够使用NSSQLiteStoreType
和InMemory配置来使用NSInMemoryStoreType
。所以这就是我修改persistentStoreCoordinator
getter的方法。
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator = {
// The persistent store coordinator for the application. This implementation creates and returns a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
// Create the coordinator and store
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("SingleViewCoreData.sqlite")
var failureReason = "There was an error creating or loading the application's saved data."
do {
try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: "SQLStorage", URL: url, options: nil)
} catch {
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error as NSError
let wrappedError = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(wrappedError), \(wrappedError.userInfo)")
abort()
}
do {
try coordinator.addPersistentStoreWithType(NSInMemoryStoreType, configuration: "InMemory", URL: url, options: nil)
} catch {
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error as NSError
let wrappedError = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(wrappedError), \(wrappedError.userInfo)")
abort()
}
return coordinator
}()
加班我尝试编译此代码我收到错误:
CoreData:错误:-addPersistentStoreWithType:InMemory 配置:InMemory 网址:文件:///用户/开发/库/开发商/ CoreSimulator /设备/ 1D943405-C5AD-4CD4-9413-070DFC5334AB /数据/集装箱/数据/应用/ 2BEAF446-6F32-405B-B2B6-6B298D45E103 /文档/ SingleViewCoreData .sqlite options:(null)...返回错误Error Domain = NSCocoaErrorDomain Code = 134080“(null)”UserInfo = {NSUnderlyingException =无法添加 使用userInfo字典{同一商店两次} { NSUnderlyingException =“无法两次添加同一商店”; }
2016-08-16 02:25:05.181 EncryptedCoredata [9457:461607]未解决 错误错误域= YOUR_ERROR_DOMAIN代码= 9999“无法初始化 应用程序保存的数据“UserInfo = {NSLocalizedDescription =失败 初始化应用程序保存的数据, NSLocalizedFailureReason =创建或加载时出错 应用程序保存的数据。,NSUnderlyingError = 0x7ff25a840ba0 {错误 Domain = NSCocoaErrorDomain Code = 134080“(null)” UserInfo = {NSUnderlyingException =无法两次添加同一商店}}}, [NSLocalizedDescription:无法初始化已保存的应用程序 数据,NSLocalizedFailureReason:创建或加载时出错 应用程序保存的数据。,NSUnderlyingError:错误 Domain = NSCocoaErrorDomain Code = 134080“(null)” UserInfo = {NSUnderlyingException =无法两次添加同一商店}]
可能是什么问题?任何帮助,将不胜感激。提前谢谢。