Я работаю над примером проекта.
Я пытаюсь подсчитать количество UIB-кнопок, которые есть у представления ViewControllers, и затем добавить их в массив, чтобы я мог программно получить к ним доступ, т.е. изменитьцвет / заголовок и т. д.
import UIKit
class ViewController: UIViewController
{
var cardButtons: [UIButton]!
let cardForegroundColour = UIColor.white
let cardBackgroundColour = UIColor.orange
lazy var game = ConcentrationGame(numberOfPairsOfCards: (self.cardButtons.count + 1) / 2)
override func viewDidLoad()
{
for case let button as UIButton in self.view.subviews
{
button.backgroundColor = cardForegroundColour
self.cardButtons.append(button)
}
print ("number of buttons /(self.cardButtons.count)")
}
Итак, он прекрасно работает, но вылетает в строке добавления с:
Тема 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании Необязательногозначение
Теперь, если я установлю точку останова, объект button
является допустимым объектом.
Я могу корректно изменить все цвета, но просто не могу их добавитьк массиву cardButtons
.
Я знаю, что могу настроить cardButtons
как выход для сбора и подключить их вручную, но я хочу иметь возможность изменить пользовательский интерфейс, и код просто адаптируется, поэтомудобавление дополнительных кнопок или удаление некоторых не приводит к изменению кода и не требует ручной замены.
Я понимаю, что проблема заключается в моем понимании дополнительных функций, но я думал, что !
в начале и конкретныйобъект button
быллегкий подход.