【发布时间】:2015-08-24 05:37:24
【问题描述】:
我想做的是,在应用程序委托中,我想编写一个代码,如果它在 iphone 的文档目录中不存在,它将复制一个 sqlite 数据库。为此,我使用以下代码-
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
let containerViewController = ContainerViewController()
window!.rootViewController = containerViewController
window!.makeKeyAndVisible()
//Create database if not exists
let docsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as! String
let databaseStr = "LocalDatabase.sqlite"
let dbPath = docsPath.stringByAppendingPathComponent(databaseStr)
let fileManager: NSFileManager = NSFileManager.defaultManager()
if !fileManager.fileExistsAtPath(dbPath) {
let databaseInApp: String? = NSBundle.mainBundle().resourcePath?.stringByAppendingPathComponent(databaseStr)
fileManager.copyItemAtPath(databaseInApp!, toPath: dbPath, error: nil)
}
return true
}
在目录中创建数据库没问题。但是我没有在数据库中获得蚂蚁表。这意味着创建新文件而不是复制。我确定该数据库中有 9 个要复制的表。
文件结构如截图所示-
我哪里错了,我不明白。请告诉我是否有人能够解决这个问题。还有一件事当我在模拟器中运行应用程序时
/Users/Adelantelabs/Documents/Sidemenu.swift/SlideOutNavigation/Localdatabase.sqlite
然后它运行良好,但在我运行它时无法在 iphone 中运行。
【问题讨论】: