正如您在这里所读到的,在大多数情况下 aIBOutlet
应该是弱的。
现在您可以在开发库中阅读,并非所有类都支持弱引用。(例如 NSTextView)。这意味着您必须使用分配:
@property (assign) IBOutlet NSTextView *textView;
如果您使用弱引用,您将收到以下错误:“不允许合成弱不可用属性,因为它需要合成 __weak 对象的 ivar”
文档没有提到的是,现在您必须在使用该属性后再次将其设置为 nil,例如通过一种dealloc
方法:
- (void)dealloc
{
self.textView = nil;
}
据我了解,标有的类NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE
不支持弱引用,但原因是什么?