2010-04-24 36 views
0

我在使用Xcode的iPhone程序的某些sqlite代碼時遇到問題。我打開我的數據庫是這樣的:讓程序運行之間保持sqlite文件不存在

int result = sqlite3_open(「stealtown.db」,& database);

這就是他們在我正在查看的一本書中的樣子,而我正在鍵入該程序。但是,那樣的打開數據庫的方式只能在模擬器中運行,而不能在設備上運行。所以我最終想出我需要這樣做:

NSString * file = [[NSBundle mainBundle] pathForResource:@「stealtown」ofType:@「db」]; int result = sqlite3_open([file UTF8String],& database);

在設備上工作,除了一件事情:每次啓動程序時,它就像您從未創建數據庫一樣開始,並且當您在表格中粘貼條目時,它是該表格中的唯一條目。

當我在模擬器上使用第一個代碼時,我可以打開我的程序6次,每次向表中添加1個條目,最後我在該表中有6個條目。使用第二個代碼,我可以做同樣的事情,但每次在該表中只有一個條目。我是否可以解釋這一點,我希望如此,有時對我來說很難。

任何人都知道爲什麼會這樣?

回答

2

在設備上,應用程序包不可寫入。因此,您的數據庫文件無法更改。首次啓動時,您必須在應用程序的Documents目錄中創建數據庫。或者,如果您的應用程序帶有預填充數據,則必須先將數據庫文件從應用程序包複製到Documents目錄,然後打開副本。

+0

謝謝,這是正確的,並修復它! – Cocorico 2010-04-24 17:33:23

相關問題