0

我正在开发一个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 中更新应用程序版本时管理数据库更新,是一种常见的情况,所以有人可以澄清我管理这个的正确方法是什么?我不完全了解应用程序更新提交的工作原理,这将是我的第一次提交。

非常感谢

4

0 回答 0