CharacterSet 类型的值没有成员 InvertedSet - Swift 3

Value of type CharacterSet has no member InvertedSet - Swift 3

我正在尝试将 swift 2 代码转换为 swift 3:

var customAllowedSet =  NSCharacterSet(charactersInString:"=\"#%/<>?@\^`{|}").invertedSet

它抛出这个错误:

Value of type CharacterSet has no member InvertedSet

根据 Apple documentation,Swift 3 中 invertedSet 方法的名称已更改为 inverted。所以试试这个:

var customAllowedSet =  CharacterSet(charactersIn:"=\"#%/<>?@\^`{|}").inverted

PS: init(charactersInString:) of CharacterSet 也改为 init(charactersIn:)

在 Swift 3 中,您还应该删除 NS 前缀。您应该使用 CharacterSet 而不是 NSCharacterSet。您还应该将其声明为常量。

let customAllowedSet =  CharacterSet(charactersIn: "=\"#%/<>?@\^`{|}").inverted

您也可以将其声明为静态 属性 扩展字符集,如下所示:

extension CharacterSet {
    static let customAllowedSet = CharacterSet(charactersIn:"=\"#%/<>?@\^`{|}").inverted
}

CharacterSet.customAllowedSet