【问题标题】:What NSString compare method call is equivalent to a CFStringCompare function call?什么 NSString 比较方法调用等效于 CFStringCompare 函数调用?
【发布时间】:2011-03-04 19:41:02
【问题描述】:

我正在将一些旧的 carbon 代码转换为 Cocoa,并且需要使用一个比较函数来返回与 carbon 中的结果相同的结果。

我在打电话:

CFStringCompare( stringA, stringB, kCFCompareCaseInsensitive | kCFCompareDiacriticInsensitive | kCFCompareNumerically );

现在,如果 stringA 和 stringB 是 NSString 的,我想使用 NSString 方法比较它们,哪个选项(如果有)会返回与上面的 CFStringCompare 函数相同的结果?

【问题讨论】:

    标签: cocoa comparison nsstring macos-carbon cfstring


    【解决方案1】:

    答案似乎是:

    NSStringCompareOptions  compareOptions = NSCaseInsensitiveSearch | NSNumericSearch | NSDiacriticInsensitiveSearch;
    
    result = [stringA compare:stringB options:compareOptions];
    

    【讨论】:

      【解决方案2】:

      [string1 isEqualToString:string2];

      [string1 caseSensitiveCompare:string2];

      等等。

      转到 NSString 类参考了解更多信息

      【讨论】:

      • 我不相信这是真的。文档说:“因此,例如,表示为组合字符序列“O”的“Ö”和变音符号不会与表示为一个 Unicode 字符的“Ö”比较。我很确定 kCFCompareDiacriticInsensitive 选项会说这两个字符是相等的。
      • 对,有很多方法和各种选项。哪个与问题中的 CFStringCompare 函数匹配。
      • 然后将您的 NSString 转换为 CFString 并从那里开始
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多