正如你在这里所读到的,在大多数情况下,IBOutlet
应该是弱引用。
现在,正如你可以在开发文档库中了解到的那样,并不是所有的类都支持弱引用。 (例如:NSTextView)。这意味着你必须使用 assign:
@property (assign) IBOutlet NSTextView *textView;
如果您使用弱引用,将会收到以下错误:
"Synthesis of a weak-unavailable property is disallowed because it requires synthesis of an ivar of the __weak object"文档遗漏的是现在你必须在使用完之后重新将属性设置为nil,例如通过一个dealloc方法:
- (void)dealloc
{
self.textView = nil;
}
据我所了解,标记为NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE
的类不支持弱引用,但是原因是什么?
IBOutlets
默认应该是strong! - Jay