因此,我可以访问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应用程序数据库:MySQL&SQLite
- 2. 数据库+同步(iPhone应用程序)
- 3. iPhone应用程序从Sqlite3数据库读取数据
- 4. iPhone应用程序,数据层和数据库服务器
- 5. iPhone应用程序从Mysql数据库获取数据
- 6. 如何从iPhone应用程序连接到远程数据库?
- 7. 如何从iPhone应用程序访问远程MySql数据库
- 8. iPhone应用程序 - 远程数据库 - 建议
- 9. iPhone应用程序本地或远程数据库
- 10. 从iPhone应用程序远程访问SQL数据库
- 11. 使用共享数据库开发Android和iPhone应用程序
- 12. 使用sqlite数据库的iPhone 4应用程序
- 13. 是否可以使用Android数据库的iPhone应用程序?
- 14. 如何用数据库开发iphone应用程序?
- 15. 在iPhone中使用现有的Sqlite数据库应用程序
- 16. 在iPhone iOS 5应用程序中使用SQLite数据库?
- 17. iphone应用程序性能数据
- 18. iphone应用程序UIWebView缓存数据
- 19. iPhone应用程序的数据存储
- 20. 调试iphone应用程序数据源
- 21. “拉”iPhone应用程序数据到Xcode?
- 22. 为iPhone应用程序存储数据
- 23. 从iPhone中的应用程序添加数据到原生iPhone应用程序?
- 24. 您应该使用哪个数据库来编程iPhone/iPad应用程序?
- 25. 将sqlite3数据库关联到iPhone应用程序
- 26. 将SQLite数据库添加到iPhone应用程序
- 27. 在iPhone应用程序升级上部署sqlite数据库
- 28. iPhone应用程序中的数据库连接
- 29. 将iphone应用程序连接到mysql数据库
- 30. 如何查询外部SQL数据库 - iPhone应用程序
舰空一个封装资源,复制到文档文件夹在第一次运行。比运行(和维护)模式创建脚本便宜。 – 2011-02-14 16:39:12