在现有iOS应用程序中更新sqlite数据库

时间:2013-12-11 02:46:49

标签: ios sqlite core-data

所以我在App Store上有一个应用程序,其中.sqlite文件包含大约500条记录的静态数据。首次启动应用程序时,.sqlite文件已复制到NSDocumentDirectory, NSUserDomainMask

我打算发布我的应用程序的更新,只需在现有数据库中添加约9条新记录(无结构更改)。

我努力为次要更新找到合适的方法,但却无法...... 以下链接:Update/Insert content into an existing Sqlite db on an iPhone app update解释了开发人员将应用程序版本存储在数据库中并检查以决定是否更新的机制......

感谢有关如何做到这一点的任何想法/帮助!提前谢谢!

1 个答案:

答案 0 :(得分:1)

正如Hot Licks所说,在初始化DB之后调用此代码:

if([self isFirstLaunchInCurrentVersion]){      
    //query the records you want to add , if records not exist, then insert them 

    [self setCurrentVersionLaunch:YES];
}

两个util方法:

- (BOOL)isFirstLaunchInCurrentVersion{
    NSString * currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
    return  [[NSUserDefaults standardUserDefaults] boolForKey:currentVersion];
}
- (void)setCurrentVersionLaunched:(BOOL)isFirstLaunched{
    NSString * currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
    [[NSUserDefaults standardUserDefaults] setBool:isFirstLaunched forKey:currentVersion];
    [[NSUserDefaults standardUserDefaults] synchronize];
}