确定我的应用是否已更新的最佳方法

时间:2012-03-08 14:23:27

标签: iphone objective-c ios ipad xamarin.ios

我有一个IOS应用程序,每次更新我想做一些房屋清洁。确定IOS应用程序是否已更新的最佳方法是什么?

3 个答案:

答案 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"];
}