NSString 的 compare 方法


- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange locale:(nullable id)locale;

compare:(NSString *)

傳入一個需要比較的字符串。

例如 [value compare:@"1234567890"],返回 NSOrderedSame。

 

options:(NSStringCompareOptions)

傳入 NSStringCompareOptions 枚舉的值

enum{

    NSCaseInsensitiveSearch = 1,//不區分大小寫比較

    NSLiteralSearch = 2,//區分大小寫比較

    NSBackwardsSearch = 4,//從字符串末尾開始搜索

    NSAnchoredSearch = 8,//搜索限制范圍的字符串

    NSNumbericSearch = 64//按照字符串里的數字為依據,算出順序。例如 Foo2.txt < Foo7.txt < Foo25.txt

//以下定義高於 mac os 10.5 或者高於 iphone 2.0 可用

    ,

    NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符號的比較

    NSWidthInsensitiveSearch = 256,//忽略字符串的長度,比較出結果

    NSForcedOrderingSearch = 512//忽略不區分大小寫比較的選項,並強制返回 NSOrderedAscending 或者 NSOrderedDescending

//以下定義高於 iphone 3.2 可用

    ,

    NSRegularExpressionSearch = 1024//只能應用於 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比較方法,如果設置此項,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch

}

 

range:(NSRange)

比較字符串的范圍

 

結構變量:

location: 需要比較的字串起始位置(以0為起始)

length: 需要比較的字串長度

 

返回值:

typedef enum _NSComparisonResult {
     NSOrderedAscending = -1,    // < 升序
     NSOrderedSame,              // = 等於
     NSOrderedDescending   // > 降序
} NSComparisonResult;

 

例如,根據友盟自動更新判斷版本號,升序提示更新,否則不提示

//判斷NSUserDefaults忽略版本跟version是否相同

    if ([[[NSUserDefaults standardUserDefaults] objectForKey:hUMtypeVersion] isEqualToString:dict[@"version"]])

    {

        return;

    }

    //不相同 判斷version 是否等於 當前版本

if ([CFBundleShortVersionString compare:dict[@"version"] options:NSNumericSearch] != NSOrderedAscending)            //升序

    {

        return;

    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM