【问题标题】:How to combine multiple NSString.CompareOptions in swift?如何快速组合多个 NSString.CompareOptions?
【发布时间】:2021-07-19 18:59:00
【问题描述】:

我正在尝试在 swift 中组合多个 nsstring 比较选项,以便在方法 string.range(of:) 中使用,但出现错误:

Referencing operator function '|' on 'BinaryInteger' requires that 'NSString.CompareOptions' conform to 'BinaryInteger'

这就是我创建选项的方式:

        let options = NSString.CompareOptions.diacriticInsensitive | NSString.CompareOptions.caseInsensitive 

在objective-c 中这工作正常,但在swift 中有一个错误。有什么想法吗?

【问题讨论】:

    标签: ios swift objective-c


    【解决方案1】:

    NSString.CompareOptions 是 Swift 中的 OptionSet。您可以使用数组文字语法来使用它:

    let options: NSString.CompareOptions = [
        .diacriticInsensitive,
        .caseInsensitive,
    ]
    

    您应该在文档中阅读有关 OptionSet 的更多信息:https://developer.apple.com/documentation/swift/optionset

    NSHipster 也很好地涵盖了它们,并将它们与 Objective C 中使用的原始整数进行了对比:https://nshipster.com/optionset/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2020-05-19
      • 1970-01-01
      • 2016-03-28
      相关资源
      最近更新 更多