我正在编写一个应用程序,它接收带有项目和版本号的数据.数字的格式为"1.0.1"或"1.2.5".如何比较这些版本号?我认为它们必须先格式化为字符串,不是吗?要确定"1.0.1"之后是"1.2.5",我必须有哪些选项?

推荐答案

这是比较版本的最简单方法,请记住"1"<;"1.0"<;"1.0.0":

NSString* requiredVersion = @"1.2.0";
NSString* actualVersion = @"1.1.5";

if ([requiredVersion compare:actualVersion options:NSNumericSearch] == NSOrderedDescending) {
  // actualVersion is lower than the requiredVersion
}

Objective-c相关问答推荐

目标 C:什么是(id)发件人?

在哪里可以找到 iPad 示例代码

Objective C:给定一个Class id,我可以判断这个类是否实现了某个协议吗?还是有一定的 Select 器?

可供学习的 iOS 示例项目

如何在运行时向对象添加属性?

为什么 NSDateFormatter 为这 4 个时区返回 nil 日期?

如何使用 NSString drawInRect 使文本居中?

无法编译连接:错误是什么意思?

增加推送通知徽章 iPhone

来自 NSString 的 NSJSONSerialization

try 标记应用程序图标但未获得用户标记应用程序的权限:iOS 8 Xcode 6

无法加载从笔尖引用的图像

在 NSNumbers 的 NSArray 中查找最小值和最大值

如何对包含数字的 NSMutable 数组进行排序?

Objective-C 中的属性和实例变量

在 UITableView 的 iOS 文档目录中列出保存的文件?

移除所有 CALayer 的子层

带有Go按钮而不是返回的 iOS 键盘

CMTime 秒输出

无法在 iOS7 上将 UITextField 添加到 UIAlertView ...在 iOS 6 中有效