Коллекции Swift IBOutlet и сохраняют безопасность цикла

Я пытался использовать коллекции розеток Swift в проекте MacOS в течение некоторого времени, и только что узнал, что в настоящее время это невозможно. Я все еще озадачен, почему бы и нет, но если предположить, что в какой-то момент в него внесены изменения, у меня есть еще одна проблема.

Я понимаю, что выходы, как правило, должны быть слабыми, за исключением "корневого" выхода, чтобы предотвратить сохранение циклов:

@IBOutlet weak var someButton: NSButton!

Но примеры, которые я нашел для синтаксиса коллекции, не включают в себя слабый модификатор, и я не нашел места для его размещения, которое (1) имеет смысл, а (2) не получает красный флаг:

@IBOutlet var severalButtons: [NSButton]!

Итак, я что-то упускаю очевидное? Могу ли я быть уверен, что такая торговая точка не создаст цикл сохранения? (Предполагая, что они когда-либо позволили?)

1 ответ

Решение

IBOutletCollectionв отличие от IBAction или IBOutlet, принимает имя класса в качестве аргумента. В качестве объекта верхнего уровня IBOutletCollection должен быть объявлен сильным. Это объясняется более подробно здесь.

Поэтому из-за этого ограничения IBOutletCollection имеет потенциал для создания цикла сохранения.

Другие вопросы по тегам