Ios NSBundle swift与sqlite底座
真的很抱歉这个愚蠢的问题,但是,刚刚开发了一个从数据库读取信息的应用程序。当从Xcode测试时,可以从我的数据库读取数据。但是,一旦测试了应用程序并将sqlite库放入复制包资源中,该库似乎就不会复制到我的iPhone中。我猜我的AppDelegate出了点问题,但我真的不知道Ios NSBundle swift与sqlite底座,ios,iphone,sqlite,swift,core-data,Ios,Iphone,Sqlite,Swift,Core Data,真的很抱歉这个愚蠢的问题,但是,刚刚开发了一个从数据库读取信息的应用程序。当从Xcode测试时,可以从我的数据库读取数据。但是,一旦测试了应用程序并将sqlite库放入复制包资源中,该库似乎就不会复制到我的iPhone中。我猜我的AppDelegate出了点问题,但我真的不知道 lazy var managedObjectModel: NSManagedObjectModel = { let modelURL = NSBundle.mainBundle().URLForResou
lazy var managedObjectModel: NSManagedObjectModel = {
let modelURL = NSBundle.mainBundle().URLForResource("RechercheRatio", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("RechercheRatio.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
let mOptions = [NSMigratePersistentStoresAutomaticallyOption : true, NSInferMappingModelAutomaticallyOption : true]
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: mOptions, error: &error) == nil {
coordinator = nil
// 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
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()
}
如果有任何帮助或想法,我们将不胜感激
谢谢可能的重复一般来说,答案是NSDocumentsDirectory未被应用程序安装填充,并且NSBundle.path不可写入,因此您必须将重新填充的数据库从NSBundle复制到NSDocumentsDirectory。谢谢David,但是,我不知道该放在哪里以及如何放置。你有一个快速的例子吗?副本有一个相当长的讨论。