0
帮助解决这个swift 3错误。我们试图以某种方式存储每个短语中的字符数,在这种情况下,根据来自https://www.raywenderlich.com/77981/make-letter-word-game-uikit-swift-part-1的数据源将其存储为anagram1length和anagram2length。这里值得关注的是在迅速3的代码如下两行给我们一个错误使用未解决的标识符“计数”的:在Swift 3中使用未解析的标识符进行数据存储
let anagram1length = count(anagram1)
let anagram2length = count(anagram2)
从以下功能:
func dealRandomAnagram() {
//1
assert(level.anagrams.count > 0, "no level loaded")
//2
let randomIndex = randomNumber(minX:0, maxX:UInt32(level.anagrams.count-1))
let anagramPair = level.anagrams[randomIndex]
//3
let anagram1 = anagramPair[0] as! String
let anagram2 = anagramPair[1] as! String
//4
let anagram1length = count(anagram1)
let anagram2length = count(anagram2)
//5
print("phrase1[\(anagram1length)]: \(anagram1)")
print("phrase2[\(anagram2length)]: \(anagram2)")
//calculate the tile size
let tileSide = ceil(ScreenWidth * 0.9/CGFloat(max(anagram1length, anagram2length))) - TileMargin
//get the left margin for first tile
var xOffset = (ScreenWidth - CGFloat(max(anagram1length, anagram2length)) * (tileSide + TileMargin))/2.0
//adjust for tile center (instead of the tile's origin)
xOffset += tileSide/2.0
//initialize target list
targets = []
//create targets
for (index, letter) in anagram2length.enumerate(anagram2) {
if letter != " " {
let target = TargetView(letter: letter, sideLength: tileSide)
target.center = CGPointMake(xOffset + CGFloat(index)*(tileSide + TileMargin), ScreenHeight/4)
gameView.addSubview(target)
targets.append(target)
}
}
这是真的。但是,这种解决方案在这种情况下不起作用。如果我使用你的建议,那么'anagram2length.enumerate(anagram2)'中的'(index,letter)'这行'失败。 –
如果您将整个代码翻译为当前的Swift版本,它会有所帮助。你可能是指在anagram2.characters.enumerated()'中为(索引,字母)。你的语法'anagram2length.enumerate(anagram2)'甚至不能在旧的Swift版本中编译。 – vadian
将整个函数转换为Swift 3工作。谢谢。 –