Коллекции Swift IBOutlet и сохраняют безопасность цикла
Я пытался использовать коллекции розеток Swift в проекте MacOS в течение некоторого времени, и только что узнал, что в настоящее время это невозможно. Я все еще озадачен, почему бы и нет, но если предположить, что в какой-то момент в него внесены изменения, у меня есть еще одна проблема.
Я понимаю, что выходы, как правило, должны быть слабыми, за исключением "корневого" выхода, чтобы предотвратить сохранение циклов:
@IBOutlet weak var someButton: NSButton!
Но примеры, которые я нашел для синтаксиса коллекции, не включают в себя слабый модификатор, и я не нашел места для его размещения, которое (1) имеет смысл, а (2) не получает красный флаг:
@IBOutlet var severalButtons: [NSButton]!
Итак, я что-то упускаю очевидное? Могу ли я быть уверен, что такая торговая точка не создаст цикл сохранения? (Предполагая, что они когда-либо позволили?)
1 ответ
IBOutletCollection
в отличие от IBAction
или IBOutlet
, принимает имя класса в качестве аргумента. В качестве объекта верхнего уровня IBOutletCollection
должен быть объявлен сильным. Это объясняется более подробно здесь.
Поэтому из-за этого ограничения IBOutletCollection
имеет потенциал для создания цикла сохранения.