因此,我可以访问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