Swift 升级我的应用程序以包含预填充的数据

Swift 升级我的应用程序以包含预填充的数据,swift,core-data,Swift,Core Data,我决定改进我的初始设计,并预先填充应用程序的某些部分。我试图在本教程之后阅读sqlite: 但是,代码行是这样的: if !NSFileManager.defaultManager().fileExistsAtPath(url.path!) { let sourceSqliteURLs = [NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite")!, NSBundle.ma

我决定改进我的初始设计,并预先填充应用程序的某些部分。我试图在本教程之后阅读sqlite:

但是,代码行是这样的:

if !NSFileManager.defaultManager().fileExistsAtPath(url.path!) {
    let sourceSqliteURLs =         [NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite")!, NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite-wal")!, NSBundle.mainBundle().URLForResource("CoreDataDemo", withExtension: "sqlite-shm")!]

    let destSqliteURLs =   [self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite"),
        self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"),
        self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")]

    var error:NSError? = nil
    for var index = 0; index < sourceSqliteURLs.count; index++ {
        NSFileManager.defaultManager().copyItemAtURL(sourceSqliteURLs[index], toURL: destSqliteURLs[index], error: &error)
    }
}
let directory = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.groupname.appname")

我正在努力查找有关此问题的任何信息。如果您能提供任何帮助,我将不胜感激。

也许您的问题中遗漏了一些内容,但如果您只想更改目标目录,那么只需更改这些行即可

let destSqliteURLs = [
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite"),
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"),
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")]
进入这个

let baseURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.groupname.appname")
let destSqliteURLs = [
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite"),
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"),
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")]

也许我在你的问题中遗漏了什么,但是如果你只想更改目标目录,那么只需更改这些行

let destSqliteURLs = [
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite"),
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"),
    self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")]
进入这个

let baseURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.groupname.appname")
let destSqliteURLs = [
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite"),
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite-wal"),
    baseURL.URLByAppendingPathComponent("CoreDataDemo.sqlite-shm")]

今天早上我试着这么做,但没有成功。无论出于什么原因,商店实际上没有加载此更改?应用程序似乎无法识别这些更改,只是加载一个空白存储,就好像什么都没发生一样。我看不出我做错了什么,因为我也正确地更新了swift 2的语法,并验证了存储区实际上包含基本数据。今天早上我尝试了这样做,但没有成功。无论出于什么原因,商店实际上没有加载此更改?应用程序似乎无法识别这些更改,只是加载一个空白存储,就好像什么都没发生一样。我也正确地更新了swift 2的语法,并验证了存储实际上包含基本数据,因此我看不出我做错了什么。