2011-03-30 84 views
0

我用下面的代碼爲只讀數據庫....SQlite的iPhone上READONLY

NSString *databasePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"lookup.db"]; 

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

我得到以下錯誤信息......

Mar 30 12:13:09 unknown sandboxd[418] <Notice>: LittleApp(129) deny file-write-data /private/var/mobile/Applications/E2112718-D0AB-46D4-8914-CC65EF262C0C/LittleApp.app/lookup.db 

現在我知道了DB是在mainBundle,如果我想讀/寫訪問然後將其複製到用戶文檔,但我只需要讀取權限,我也有問題,人們的手機不能正確複製數據庫,有超過70萬用戶應用程序,它確實顯示!

所以我想問題是,我怎麼能通過設置查詢/打開到只讀來禁止此通知?

回答

2

嘗試使用帶有SQLITE_OPEN_READONLY標誌的sqlite3_open_v2而不是sqlite3_open

+0

現貨,所有iOS版本都可以使用該功能嗎? – 2011-03-30 11:41:08

+0

@李阿姆斯特朗:我真的不知道。你可以通過if(sqlite3_open_v2!= NULL){...}來測試它的存在,我想。 – DarkDust 2011-03-30 11:50:49

+0

剛剛在OS3.0上試過,它似乎很好,謝謝 – 2011-03-30 11:55:56