2015-10-27 52 views
1

我決定改進我的初始設計並預先填充我的應用程序的某些部分。我試圖讓sqlite的被閱讀下面這個教程:http://www.appcoda.com/core-data-preload-sqlite-database/升級我的應用程序以包含預填充數據

不過的代碼是這樣的一行:

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) 
    } 
} 

不是我的應用程序完全正確的,因爲我使用的是共享應用文件夾。我面臨的問題是應用程序加載正常並傳遞代碼行,但是當我查看顯示信息的頁面時,什麼也沒有。我下載了sqlite閱讀器來查看數據庫中是否有對象,所以我知道這不是問題。爲了使共享應用程序組正確執行此功能,我必須對這些代碼行進行哪些修改?到共享應用程序組的目錄是這樣的:

let directory = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.groupname.appname") 

我很努力地找到任何幫助信息將不勝感激。

回答

0

也許我失去了你的問題的東西,但如果你想要做的是改變目標目錄,然後只需要改變這些行...

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")] 
+0

今天早上我試過這樣做,但沒有成功。無論出於何種原因,商店實際上並未加載此更改?應用程序似乎無法識別這些更改,只是加載一個空白商店,就好像什麼也沒有發生。我看不到我做錯了什麼,因爲我更正了swift 2的語法,並驗證了商店實際上包含基礎數據。 – cruelty

相關問題