如何在swift中组合多个NSString.CompareOptions



我试图将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中有一个错误。有什么想法吗?

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

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

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

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

最新更新