замена для l oop для сопоставления метода - PullRequest
0 голосов
/ 01 мая 2020

Я застрял в этой цели.

Узнайте о методе map и используйте его вместо l oop, который преобразует массив символов в массив строк в updateUI().

Я прочитал документацию и темы о map, но все мои попытки не сработали.

//change loop below to map method

for letter in currentGame.formattedWord {
    letters.append(String(letter))
}
let wordWithSpacing = letters.joined(separator: " ")      
correctWordLabel.text = wordWithSpacing
scoreLabel.text = "Wins: \(totalWins), Losses: \(totalLosses)"
treeImageView.image = UIImage(named: "Tree \(currentGame.incorrectMovesRemaining)")

Спасибо за помощь

Ответы [ 2 ]

3 голосов
/ 01 мая 2020

Документация String сообщает нам:

Строка - это серия символов, например "Swift", которая образует коллекцию.

Итак, вы можете использовать map для преобразования каждого из этих символов в отдельные строки:

let string = "Hello, world"

let letters = string.map { (character: Character) -> String in
    return String(character)
}

Или, более кратко:

let letters = string.map { String($0) }
0 голосов
/ 01 мая 2020

Я сделал это. проблема была в том, что я оставил буквы var как пустой массив и попытался добавить символы в этот массив. Теперь я понял, что это неправильно.

func updateUI() {
            let letters = currentGame.formattedWord
            let mappedLetters = letters.map { String($0)} 

       /* for letter in currentGame.formattedWord {
           letters.append(String(letter))
            } */

Спасибо всем!

...