2012-01-02 93 views
1

希望有人可以幫助一個新的iOS開發人員 - 我有一個名爲teamresults.db的現成的sqlite數據庫,我使用「添加文件...」添加到項目中,但是當我使用下面的代碼我似乎是連接/引用一個空的數據庫,而不是添加的數據庫(通過終端檢查模擬器使用的數據庫大小爲0mb,我添加的數據庫大約爲3mb)。SQLite空數據庫被引用

它似乎應用程序創建一個空的數據庫,但我不知道爲什麼?有什麼想法嗎?

僅供參考我沒有得到任何錯誤消息:

BOOL success; 
dbName = @"teamresults.db"; 

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDir = [documentPaths objectAtIndex:0]; 
dbPath = [documentsDir stringByAppendingPathComponent:dbName]; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 

success = [fileManager fileExistsAtPath:dbPath]; 

if(success) { 
    return; 
} 

NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:dbName]; 

[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil]; 

回答

3

似乎是壞了這行代碼:

[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil]; 

正確的是:

[fileManager copyItemAtPath:databasePathFromApp toPath:dbPath error:nil]; 

你應該數據庫複製到沙箱路徑,而不是資源的路徑!

+0

絕對地發現,非常感謝您的幫助。 :) – Dizzler 2012-01-02 13:53:58

+0

歡迎你! – 2012-01-03 05:29:28

0

做一兩件事。通過右鍵單擊刪除添加的數據庫,然後單擊刪除而不是「僅刪除參考」。然後再次添加,不要忘記點擊「複製到目標項目」。希望這會幫助你。