2012-10-08 45 views
0

好吧,在我的應用程序初始加載時,我從sqlite數據庫讀取。我用這個密碼打開它:iOS中的Sqlite數據庫似乎從用戶目錄加載,但文件與應用程序中的不同。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"golfScores.sqlite"]; 

if(sqlite3_open([path UTF8String], &database) == SQLITE_OK){ 

我已經導致相信這個開放從應用程序目錄,而不是應用程序包中的數據庫。在添加,刪除或更新記錄時,在應用程序內一切正常。我可以關閉應用程序並重新打開它,數據顯示爲應該顯示。問題是,如果我去看終端的數據庫,沒有什麼改變。它完全不同。所以它必須使用並保存到數據庫中的數據庫,對吧?我怎樣才能讓應用程序更新應用程序目錄中的數據庫?

回答

4

你的代碼看起來對我來說是正確的,聽起來好像它工作的很好!您絕對不會訪問您的應用程序包。包中的文件不會被應用程序編輯,因爲它破壞了代碼簽名。但是,可以使用NSBundle類讀取它們。

我猜想,無論你在使用終端看什麼都不是你的應用程序正在訪問的數據庫文件。

+0

這對我來說也是唯一有意義的東西。我似乎無法找到可以編輯的數據庫的另一個副本。 – user1040854

+0

好吧,我刪除了應用程序目錄中的數據庫以及xcode中的文件管理器中的數據庫,並且所有內容仍然工作相同。它甚至保留了以前的數據,所以很明顯我看到了錯誤的數據。好吧,現在我的問題是在查找器的哪裏可以找到我正在訪問的目錄?我的應用程序位於Macintosh HD/Developer中。 – user1040854

+0

你在模擬器上運行嗎?如果是這樣,你可以在/ Users/[你的名字在這裏]/Library/Application Support/iPhone Simulator/[ios version here]/Applications /中找到你的文件。 –

相關問題