因此,我可以訪問iPhone/iPod應用程序(Objective-C)中的只讀SQLite數據庫,但是我正在編寫一個新的應用程序,該應用程序將具有可寫的數據庫。顯然,r/w文件必須位於用戶可寫目錄中。我的問題是,應該在應用程序第一次啓動時,是否應該隨應用程序發運一個空數據庫並將其複製到r/w位置,或者創建r/w數據庫?iPhone應用程序數據庫
2
A
回答
1
你可以做下去,但它會更容易(且不易出錯)爲您創建一個空數據庫,把它放在你的包,然後做你的AppDelegate.m文件:
- (void)prepareDatabase
{
//add Database Versioning check to see if the resources database is newer
// generally as simple as naming your database with a version on the end
NSFileManager *filemanager = [NSFileManager defaultManager];
NSString *databasePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"/YOURDATABASE.s3db"];
if(![filemanager fileExistsAtPath:databasePath]) {
//Database doesn't exist yet, so we copy it from our resources
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/YOURDATABASE.s3db"];
if([filemanager copyItemAtPath:defaultDBPath toPath:databasePath error:nil]) {
NSLog(@"Database Copied from resources");
} else {
NSLog(@"Database copy FAILED from %@ to %@",defaultDBPath,databasePath);
}
}
}
然後在您的applicationDidFinishLaunching:
方法調用此:
[self prepareDatabase];
+0
這是正確的(+1)。爲了更加防彈,你可以複製到不同的文件名,然後重命名。這樣,創建空數據庫的最終操作就可以使用原子。 – 2011-02-14 17:50:07
相關問題
- 1. 數據庫+同步(iPhone應用程序)
- 2. iPhone應用程序從Mysql數據庫獲取數據
- 3. iPhone應用程序本地或遠程數據庫
- 4. 從iPhone應用程序遠程訪問SQL數據庫
- 5. 如何從iPhone應用程序連接到遠程數據庫?
- 6. 使用sqlite數據庫的iPhone 4應用程序
- 7. 是否可以使用Android數據庫的iPhone應用程序?
- 8. 如何用數據庫開發iphone應用程序?
- 9. 調試iphone應用程序數據源
- 10. 爲iPhone應用程序存儲數據
- 11. 「拉」iPhone應用程序數據到Xcode?
- 12. iphone應用程序UIWebView緩存數據
- 13. iPhone應用程序的數據存儲
- 14. iphone應用程序性能數據
- 15. 您應該使用哪個數據庫來編程iPhone/iPad應用程序?
- 16. 從iPhone中的應用程序添加數據到原生iPhone應用程序?
- 17. iPhone的sqlite數據庫與應用程序存儲在哪裏
- 18. iPhone應用程序 - Mysql數據庫連接不工作
- 19. 內部iPhone應用程序數據庫連接
- 20. 格式從MySQL數據庫爲iPhone應用程序
- 21. 如何創建數據庫在iPhone應用程序中?
- 22. 如何在iPhone中編寫數據庫應用程序
- 23. 將iphone應用程序連接到mysql數據庫
- 24. 數據庫錯誤:在iPhone設備上編譯應用程序
- 25. 包括外部sqlite3數據庫到iPhone應用程序
- 26. iPhone應用程序登錄屏幕+ MySQL數據庫
- 27. 如何更新我的iPhone應用程序上的數據庫?
- 28. 將SQLite數據庫添加到iPhone應用程序
- 29. 將sqlite3數據庫關聯到iPhone應用程序
- 30. 在iPhone應用程序升級上部署sqlite數據庫
艦空一個封裝資源,複製到文檔文件夾在第一次運行。比運行(和維護)模式創建腳本便宜。 – 2011-02-14 16:39:12