Быстрая настройка переменной inline или в функции?

Что такое стандарт Swift для установки переменной, для которой вы уже знаете значение? Вот два разных способа, о которых я думаю.

Вариант 1: Объявление переменной в классе, а затем ее установка в ViewDidLoad

 class ViewController: UIViewController { var refreshControl: UIRefreshControl! var sampleString: String! override func viewDidLoad() { super.viewDidLoad() refreshControl = UIRefreshControl() sampleString = "Hello" } } 

Вариант 2: Объявление переменной в классе и установка ее в строке

 class ViewController2: UIViewController { var refreshControl = UIRefreshControl() var sampleString = "Hello" override func viewDidLoad() { super.viewDidLoad() } } 

Какой предпочтительный способ сделать это в Swift? Заранее спасибо!

Прежде всего, у вас есть два принципиально разных типа в ваших двух примерах. В первом примере тип – это неявно развернутый необязательный String (т. String! ), Что означает, что он может принять значение nil . Во втором примере это просто String . Если значение не нужно назначать nil , второй вариант лучше.

Что касается вашего фактического вопроса. Я бы сказал, что второй вариант предпочтительнее, поскольку вы инициализируете значение раньше, и нет никакой возможности использовать его до его инициализации. Это было бы эквивалентно хорошо объявить тип как String и отложить инициализацию до метода init .

Метод viewDidLoad полезен только для экземпляров UIViewController и не UIViewController до тех пор, пока не будет загружено представление (что обычно происходит во время презентации). Ожидание инициализации значения до тех пор, вероятно, не является предпочтительным и не будет полезно для объектов, которые не подкласса UIViewController .

  • Как перезагрузить данные Tableview после загрузки данных JSON
  • CLLocationManager didUpdateLocations не называется iOS 8 с элементами plist
  • tableView не отображается в ViewController (swift)
  • Swift: создание видео в реальном времени из видео
  • Как я могу ограничить значение ползунка iOS целым числом?
  • UITableViewCell повторяется каждые 12 строк в быстрой
  • Как изменить поведение повторного использования ячеек?
  • Как разработать различные ячейки коллекции
  • Сохранение нескольких значений для каждого ключа в CoreData
  • как выбрать вариант «Просмотр таблицы» с пользовательской кнопкой флажка?
  • EXC_BAD_INSTRUCTION при установке UILabel.text в swift
  • Давайте будем гением компьютера.