2012-06-16 58 views
2

我有一個嵌入到我的項目中的SQLite數據庫文件。在模擬器上,查詢數據庫工作正常,但不在設備上。當我在設備上運行我的數據庫文件的路徑是這樣的(如圖所示在控制檯上有NSLog):當我在設備上運行時找不到SQLite文件

數據庫文件的路徑爲:/var/mobile/Applications/5914F328-148F-52E6-1AC9-38D7FF141F9B/MyApplication.app/db.sqlite

我的相關代碼查找數據庫是:

NSFileManager *fileMgr=[NSFileManager defaultManager]; 
    NSString *dbPath=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"db.sqlite"]; 
    NSLog(@"The path for the database file is : %@",dbPath);//Display the whole path 

我知道模擬器和設備上的路徑完全不同。那麼我應該如何更改我的代碼來找到我的數據庫文件呢?

+0

希望這有助於:如何獲得SQLite數據庫文件時,應用程序在設備上運行] [1] [1]:http://stackoverflow.com/questions/6620691/how-to-get-sqlite-database-file-when-application-is-running-on-device – webmastx

+0

不,文件路徑的相對映射是由iOS自動完成的。無需更改設備更改的代碼。它將適用於所有設備(包括模擬器)。 – Ananth

+0

好吧,但爲什麼當我在設備上運行時,它不能識別數據庫文件,這是否意味着我的代碼缺少一些東西? – Luca

回答

3

我解決了我的問題,爲了解決同一問題,我需要將SQLite文件db.sqlite包含到我的Bundle資源中。 CLICK你的project target-->Build Phases--->Copy Bundle Resources,然後點擊+按鈕,並添加您的SQLite文件,或只是拖動項目組和文件中的SQLite文件,並將其放在那裏。希望這有助於:)

相關問題