XCode 8上的Swift 3游乐场”;对成员'的模糊引用;连接()';错误

XCode 8上的Swift 3游乐场”;对成员'的模糊引用;连接()';错误,xcode,swift3.0.2,Xcode,Swift3.0.2,我有字典: let alphabet: [Character: Int] = ["a": 0, "b": 1, "c": 2, "d": 3] let validSet = CharacterSet.init(charactersIn: alphabet.keys.joined()) 这就是我得到错误的时候。我如何解决这个问题?为什么会发生? 有什么想法吗?要让它工作,你唯一应该改变的是键的类型,从字符到字符串: let alphabet: [String: Int] = ["a": 0,

我有字典:

let alphabet: [Character: Int] = ["a": 0, "b": 1, "c": 2, "d": 3]

let validSet = CharacterSet.init(charactersIn: alphabet.keys.joined())
这就是我得到错误的时候。我如何解决这个问题?为什么会发生?
有什么想法吗?

要让它工作,你唯一应该改变的是键的类型,从
字符
字符串

let alphabet: [String: Int] = ["a": 0, "b": 1, "c": 2, "d": 3]
let validSet = CharacterSet.init(charactersIn: alphabet.keys.joined())

只有更改键的类型才能使其正常工作,从
字符
字符串

let alphabet: [String: Int] = ["a": 0, "b": 1, "c": 2, "d": 3]
let validSet = CharacterSet.init(charactersIn: alphabet.keys.joined())

如果您不想按照建议将密钥类型更改为字符串,则将字符映射为字符串:

let alphabet: [Character: Int] = ["a": 0, "b": 1, "c": 2, "d": 3]
let validSet = CharacterSet(charactersIn: alphabet.keys.map{String($0)}.joined())

如果您不想按照建议将密钥类型更改为字符串,则将字符映射为字符串:

let alphabet: [Character: Int] = ["a": 0, "b": 1, "c": 2, "d": 3]
let validSet = CharacterSet(charactersIn: alphabet.keys.map{String($0)}.joined())

谢谢你的回答。我很感激。知道我的问题为什么被否决了吗?我不认为不知道
joined()
用于
String
只是一件普通的事情,是吗?@lokilindo赞成。被一个连理由都没贴出来的陌生人否决总是一种不愉快的感觉。谢谢你的回答。我很感激。知道我的问题为什么被否决了吗?我不认为不知道
joined()
用于
String
只是一件普通的事情,是吗?@lokilindo赞成。被一个连理由都没说的陌生人否决总是一种不愉快的感觉。