值类型字符集的没有成员InvertedSet - 斯威夫特3

问题描述:

我尝试过转换迅疾2码SWIFT 3:值类型字符集的没有成员InvertedSet - 斯威夫特3

var customAllowedSet = NSCharacterSet(charactersInString:"=\"#%/<>[email protected]\\^`{|}").invertedSet 

它抛出这个错误:

Value of type CharacterSet has no member InvertedSet 
+0

“编辑 - >型转换>为当前斯威夫特语法...”自动为您解决了这个问题。 –

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

var customAllowedSet = CharacterSet(charactersIn:"=\"#%/<>[email protected]\\^`{|}").inverted 

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

在斯威夫特3,你也应该下降的NS前缀。您应该使用CharacterSet而不是NSCharacterSet。你也应该声明它是一个常量。

let customAllowedSet = CharacterSet(charactersIn: "=\"#%/<>[email protected]\\^`{|}").inverted 

你也可以把它声明为扩展字符集如下静态属性:

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

CharacterSet.customAllowedSet 
+0

其实你可以同时使用'NSCharacterSet'和'CharacterSet',参见:https://developer.apple.com/documentation/foundation/nscharacterset – ninjaproger

+0

我从来没有说过他不能。我说他应该。 –

+0

是的,但没有详细的上下文,他使用它你不能说“你应该” – ninjaproger