Ответ 1
Как и Xcode 6 beta 2, Swift не имеет возможности обозначать сильные розетки. Обходной путь - подключить розетку в IB, а затем удалить атрибут @IBOutlet
из исходного файла.
Обновление: это было добавлено в Xcode 6 beta 3.
IBOutlets по умолчанию слабы в Swift. У меня есть объект в viewController, созданный в раскадровке, которая не находится в иерархии представлений. Поэтому мне нужно, чтобы она была сильной ссылкой в ViewController, как я могу изменить @IBoutlet для сильного.
Как и Xcode 6 beta 2, Swift не имеет возможности обозначать сильные розетки. Обходной путь - подключить розетку в IB, а затем удалить атрибут @IBOutlet
из исходного файла.
Обновление: это было добавлено в Xcode 6 beta 3.
Вы можете сделать IBOutlet
strong
, выбрав strong
при подключении розетки:
Или просто удалите ключевое слово weak
из объявления:
@IBOutlet var label: UILabel!
Ключевое слово strong
снова исчезло и вызывает синтаксическую ошибку в Xcode 6.1.1. Похоже, что выходы теперь по-прежнему сильны по умолчанию, что раньше было противоположным. Поэтому просто определите выход без дополнительной декларации.
@IBOutlet var nameOfOutlet: type = Whatever();
Теперь это вариант при создании выхода из раскрывающегося списка.
Вот почему мы, возможно, захотим начать делать их сильными с WWDC 2015 Сессия 407
http://asciiwwdc.com/2015/sessions/407
И последний параметр, который я хочу указать, - это тип хранилища, который может либо быть сильным или слабым.
В общем, вы должны сделать свой выход сильным, особенно если вы подключение розетки к подвидному представлению или к ограничению, которое не всегда будет сохранен иерархией представлений.
Единственный раз, когда вам действительно нужно сделать выход слабым, - если у вас есть пользовательский вид, который ссылается на то, что поддерживает иерархию представлений и в общем, что не рекомендуется.
Итак, я собираюсь выбрать сильный, и я нажму кнопку connect, который будет сгенерируйте выход.
Начиная с Xcode 6 beta 3, Swift теперь позволяет маркировать @IBOutlets
как strong
.
• @IBOutlets могут быть явно отмечены сильными, чтобы переопределить их неявно-слабое поведение. (16954464)