你知道如何分享核心數據與兩個應用程序(你的所有者),允許讀取和寫入相同的.sqlite?從兩個應用程序訪問共享數據
我曾嘗試使用應用程序組:
1) Bank.xcdatamodeld BankInfo.swift BankDetails.swift
我已經複製這些文件到這個應用程序B的項目目錄(從中檢索應用程序A的項目),然後我將它們拖入Xcode。
2)我已經從應用程序組的公共沙箱中檢索到的源碼文件
應用代表:核心數據堆疊[夫特]
lazy var applicationDocumentsDirectory: NSURL = {
let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
return urls[urls.count-1] as NSURL
}()
lazy var managedObjectModel: NSManagedObjectModel = {
let modelURL = NSBundle.mainBundle().URLForResource("shareapps", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
// Create the coordinator and store
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let directory = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("com.sd.shareapps");
let url = directory?.URLByAppendingPathComponent("shareapps.sqlite")
//Sarting frehs every time
NSFileManager.defaultManager().removeItemAtURL(url!, error: nil)
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error: &error) == nil {
coordinator = nil
// Report any error we got.
let dict = NSMutableDictionary()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = 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 \(error), \(error!.userInfo)")
abort()
}
println("\(coordinator?.persistentStores)")
return coordinator
}()
lazy var managedObjectContext: NSManagedObjectContext? = {
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext()
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
我有此錯誤消息:
"*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSPersistentStoreCoordinator for searching for entity name 'Entity'"
Regards
當您創建託管對象上下文時,是否爲其分配了有效的持久性存儲協調器? (這是什麼樣的代碼?) – 2015-04-03 13:15:03
'''lazy var managedObjectContext:NSManagedObjectContext? = { 讓協調員=自我。persistentStoreCoordinator 如果協調== {零回報 零 } VAR managedObjectContext =的NSManagedObjectContext() managedObjectContext.persistentStoreCoordinator =協調員 回報managedObjectContext }()'''應用崩潰不傳球給我的核心數據堆棧斷點。我不確定要繼續這個好方法。 – Hobbes 2015-04-03 13:37:07