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