业务场景:
1、拿到AppStore最新版本号(StoreVersion)
2、获取当前App的版本号(CurentVersion)
3、本地版本号与线上最新版本号比较,推出当前版本是否落后线上版本,弹出提示用户更新的Dialog
switch storeVersion.compare(appVersion, options: .numeric) {
case .orderedDescending:
print("左边大于右边")
case .orderedAscending:
print("左边小于右边")
case .orderedSame:
print("左边等于右边")
default:
print("default")
}
涉及到CompareOptions结构体:
extension NSString {
public struct CompareOptions : OptionSet {
public init(rawValue: UInt)
//不区分大小写的搜索。
public static var caseInsensitive: NSString.CompareOptions { get }
//逐个字符的完全相同。
public static var literal: NSString.CompareOptions { get }
//从源字符串末尾搜索。
public static var backwards: NSString.CompareOptions { get }
//搜索仅限于源字符串的开始(或结束,如果为NSBackwardsSearch)。
public static var anchored: NSString.CompareOptions { get }
//使用数字值比较字符串中的数字,即Name2.txt <Name7.txt <Name25.txt。
public static var numeric: NSString.CompareOptions { get }
//搜索会忽略变音符号。
@available(iOS 2.0, *)
public static var diacriticInsensitive: NSString.CompareOptions { get }
//搜索将忽略具有全角和半角形式的字符的宽度差异,就像在东亚字符集中那样。
@available(iOS 2.0, *)
public static var widthInsensitive: NSString.CompareOptions { get }
//如果字符串相等但不严格相等,则比较将被强制返回NSOrderedAscending或NSOrderedDescending。
@available(iOS 2.0, *)
public static var forcedOrdering: NSString.CompareOptions { get }
//搜索字符串被视为ICU兼容的正则表达式。 如果设置,则除了caseInsensitive和anchored之外,没有其他选项可以应用。 您只能将此选项与rangeOfString:…方法一起使用,并替换Occurrences(of:with:options:range :)。
@available(iOS 3.2, *)
public static var regularExpression: NSString.CompareOptions { get }
}
}
网友评论