使用“compare”比较NSString,就像Java的compareTo一样

时间:2011-09-13 14:52:05

标签: ios nsstring compare

我正在尝试从我的数据库1.2.0中提取我的应用程序版本,并将其与已安装的应用程序当前版本进行比较。可能未定义或更低(例如1.1.0等)。

我知道我可以在NSString上使用isEqualTo,但只是比较相等。

我想知道如何使用compare来获得类似于Java的compareTo方法的结果,该方法返回一个0,正整数的整数。

我查了一下NSComparisonResult,但无法弄清楚如何使用访问结果。

另外,在旁注:可以假设更新之前的版本低于苹果应用程序中的更新版本吗?应用程序是否可能降级,以便当应用程序运行数据库时可能属于较新版本的应用程序?

感谢。

3 个答案:

答案 0 :(得分:1)

如何使用compare?结果NSComparisonResult只是-1,0,1值的枚举。

答案 1 :(得分:1)

您可以使用NSString::compare来比较两个NSStrings。

前:

NSString *str1 = @"Hello";
NSString *str2 = @"World!";

NSComparisonResult retValue = [ str1 compare:str2 ];

请注意,retValue具有两个字符串是否相等的结果。枚举NSComparisonResult -

的定义
enum {
   NSOrderedAscending = -1,
   NSOrderedSame,
   NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

如果retValue == NSOrderedSame,则两个字符串相等。即,返回值 0

答案 2 :(得分:1)

1)NSComparisonResult NSOrderedAscending = -1,NSOrderedSame,NSOrderedDescending

这意味着如果第一个值小于第二个,如果值等于0,则得到-1,否则为1.

2)AppStore无法降级。如果版本不匹配,可以假设AppStore版本更新。