Как вы читаете здесь, в большинстве случаев IBOutlet
должен быть слабым.
Теперь, как вы можете прочитать в библиотека разработки не все классы поддерживают слабые ссылки. (например, NSTextView). Это означает, что вы должны использовать assign:
@property (assign) IBOutlet NSTextView *textView;
Если вы используете слабую ссылку, вы получите следующую ошибку: «Синтез слабо-недоступного свойства запрещен, поскольку он требует синтеза ivar объекта __weak».
Документация не упомянула, что теперь вам нужно снова установить для свойства значение nil после его использования, например. методом dealloc
:
- (void)dealloc
{
self.textView = nil;
}
Насколько я понял, классы, отмеченные NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE
, не поддерживают слабые ссылки, но в чем причина?
IBOutlets
должно быть сильным по умолчанию! - person Jay   schedule 08.07.2016