2

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

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

它抛出这个错误:

Value of type CharacterSet has no member InvertedSet
4

2 回答 2

6

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

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

PS: init(charactersInString:)CharacterSet也改成init(charactersIn:)

于 2017-07-24T20:31:52.103 回答
1

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

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

您还可以将其声明为扩展 CharacterSet 的静态属性,如下所示:

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

CharacterSet.customAllowedSet
于 2017-07-24T21:14:28.170 回答