Быстрое создание IBOulet как сильного

IBOutlets по умолчанию слабы в Swift. У меня есть объект в viewController, созданный в раскадровке, которая не находится в иерархии представлений. Поэтому мне нужно, чтобы она была сильной ссылкой в ​​ ViewController, как я могу изменить @IBoutlet для сильного.

Ответы

Ответ 1

Как и Xcode 6 beta 2, Swift не имеет возможности обозначать сильные розетки. Обходной путь - подключить розетку в IB, а затем удалить атрибут @IBOutlet из исходного файла.

Обновление: это было добавлено в Xcode 6 beta 3.

Ответ 2

Вы можете сделать IBOutlet strong, выбрав strong при подключении розетки: enter image description here

Или просто удалите ключевое слово weak из объявления:

@IBOutlet var label: UILabel!

Ответ 3

Ключевое слово strong снова исчезло и вызывает синтаксическую ошибку в Xcode 6.1.1. Похоже, что выходы теперь по-прежнему сильны по умолчанию, что раньше было противоположным. Поэтому просто определите выход без дополнительной декларации.

@IBOutlet var nameOfOutlet: type = Whatever();

Ответ 4

Теперь это вариант при создании выхода из раскрывающегося списка.

Вот почему мы, возможно, захотим начать делать их сильными с WWDC 2015 Сессия 407

http://asciiwwdc.com/2015/sessions/407

И последний параметр, который я хочу указать, - это тип хранилища, который может либо быть сильным или слабым.

В общем, вы должны сделать свой выход сильным, особенно если вы подключение розетки к подвидному представлению или к ограничению, которое не всегда будет сохранен иерархией представлений.

Единственный раз, когда вам действительно нужно сделать выход слабым, - если у вас есть пользовательский вид, который ссылается на то, что поддерживает иерархию представлений и в общем, что не рекомендуется.

Итак, я собираюсь выбрать сильный, и я нажму кнопку connect, который будет сгенерируйте выход.

Ответ 5

Начиная с Xcode 6 beta 3, Swift теперь позволяет маркировать @IBOutlets как strong.

Из примечания к выпуску:

• @IBOutlets могут быть явно отмечены сильными, чтобы переопределить их неявно-слабое поведение. (16954464)