Для сцепить все элементы массива строк, вы можете использовать метод reduce
:
var string = ["this", "is", "a", "string"]
let res = string.reduce("") { $0 + $1 }
Первый параметр является начальная строка , который является пустым, а второй является замыканием, которое выполняется для каждого элемента массива. Закрытие получает 2 параметра: значение, возвращаемое на предыдущем шаге (или начальное значение, если это 1-й элемент), и значение текущего элемента.
Подробнее here
Добавление Я забыл явно ответить на ваш вопрос: конкатенация не работает, потому что вы заявили о titleString
в качестве дополнительного - просто включить в не необязательной переменной, и он будет работать. Если вы все еще хотите использовать дополнительный, а затем использовать принудительный разворачивая при выполнении задания:
titleString! += "\(title)"
Дополнение 2 Как было предложено @MartinR, есть еще один простой способ конкатенации:
join("", string)
Почему вы сделали эту строку необязательной? – gnasher729
По ошибке. Я отредактировал мой вопрос –
Это не сработало, потому что вы объявили 'titleAnswer' как неявно развернутый необязательный. Теперь, когда вы превратились в необязательный, он должен работать - см. Мой ответ ниже (есть также лучший способ конкатенации) – Antonio