管理iOS应用和数据库更新的最佳方式

时间:2013-09-17 07:59:14

标签: ios database sqlite app-store updates

我正在开发一个直接使用sqlite数据库的iOS应用,而不使用Core Data。我在我第一次需要时将数据库复制到Documents的文件中定义了数据库的表。

当这些更新在数据库表中发生更改时,我担心一旦应用程序提交,就会在App Store中发布应用程序更新。我问过如何在另一篇文章中处理这个数据库更新,我被告知继续进行的方法是上传删除以前数据库的应用程序版本,并将新数据库复制到另一个名称的Documents。我这样做,但我仍然不确定管理这个问题的适当方法应该是什么。我的意思是,我现在正在这样做:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
   // Database
   NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
   if ([defaults boolForKey:@"firstLaunch"] == 0) {

      dispatch_queue_t queue = dispatch_queue_create(DatabaseQueue, NULL);
      dispatch_async(queue,^{
        [self replaceDatabase:@"former_database.sqlite" withDatabase:@"new_database.sqlite"];
        [self doDataInsertions];
        [defaults setBool:1 forKey:@"firstLaunch"];
      });

      dispatch_release(queue);
   }
}

但我不知道当用户下载并安装更新时这是否会起作用。安装更新时,NSUserDefaults中的值是否保留?我想这个场景,在App Store中更新应用程序版本时管理数据库更新是一个常见的场景,所以有人可以澄清一下管理它的正确方法是什么?我不完全理解应用程序如何更新提交内容的工作,这将是我的第一次提交。

非常感谢

0 个答案:

没有答案