我认为数组返回Any类型的数据但是在我无法转换为字符类型
之后let tabCharacters = Array(myWord.motModifié.characters)
// shuffle the array tabcharacter
let tabCharcatersMixed = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: tabCharacters)
// i try to rebuild the word
myWord.contenumodifié = ""
// first letter
myWord.contenumodifié.append(myWord.debutMot)
//following letters but it 's not ok, error occurs at this level
for i in 0..<(tabCharcatersMixed.count - 1) {
myWord.contenumodifié.append(tabCharcatersMixed[i])
}
我知道这个追加是等待的角色,所以我会用一个系统转换任何角色
答案 0 :(得分:0)
方法arrayByShufflingObjects(in:)
返回[Any]
。您需要将其转换为您作为in:
传递的数组的类型。在您的情况下,它是[Character]
。
let tabCharcatersMixed = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: tabCharacters) as! [Character]
接下来,您尝试将这些字符附加到myWord.contenumodifié
。
如果myWord.contenumodifié
为[Character]
,那么您可以使用+=
附加整个数组:
替换这个:
for i in 0..<(tabCharcatersMixed.count - 1) {
myWord.contenumodifié.append(tabCharcatersMixed[i])
}
用这个:
myWord.contenumodifié += tabCharcatersMixed
如果myWord.contenumodifié
是String
,您可以从String
创建[Character]
,然后使用+=
追加:
替换这个:
for i in 0..<(tabCharcatersMixed.count - 1) {
myWord.contenumodifié.append(tabCharcatersMixed[i])
}
用这个:
myWord.contenumodifié += String(tabCharcatersMixed)
答案 1 :(得分:0)
我找到了解决方案:
for i in 0..<(tabCharcatersMixed.count ) {
let thechar = tabCharcatersMixed[i] as! Character
myWord.contenumodifié.append(thechar)