我有一个IOS应用程序,每次更新我想做一些房屋清洁。确定IOS应用程序是否已更新的最佳方法是什么?
答案 0 :(得分:12)
最简单的方法可能是获取当前版本,将版本与保存的版本进行比较(如果有),必要时执行清理,保存新版本。以下是检索和存储版本信息以进行比较的示例。
//Getting the application version
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
//Retrieving the saved application version
NSString *savedVersion = [[NSUserDefaults standardUserDefaults] stringForKey:@"versionkey"];
//Saving the version
[[NSUserDefaults standardUserDefaults] setObject:version forKey:@"versionkey"];
如果您想知道如何比较版本,请使用NSNumericSearch
比较选项作为示例:http://spitzkoff.com/craig/?p=148
答案 1 :(得分:1)
您可以将“上次看到的”版本号存储在数据库表中,然后在启动时将该值与包版本号进行比较。通过这样做来实现:
NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
如果当前版本大于“上次看到的”版本,请执行房屋清理,然后将数据库表中的“上次看到”版本更新为当前捆绑版本。
答案 2 :(得分:1)
乔的方式完全是完美的。如果您从未在先前版本的默认设置中设置版本,或者如果您想检查当前版本是否与保存的版本匹配,那么只是为了帮助那些人提供帮助。
//Getting the application version
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
//Retrieving the saved application version
NSString *savedVersion = [[NSUserDefaults standardUserDefaults] stringForKey:@"versionkey"];
if (version == nil || [version isEqualToString:savedVersion]){
//Saving the version
[[NSUserDefaults standardUserDefaults] setObject:version forKey:@"versionkey"];
}