gpt4 book ai didi

automatic-ref-counting - ARC项目中用于NSTextView的IBOutlet

转载 作者:行者123 更新时间:2023-12-03 11:58:26 31 4
gpt4 key购买 nike

在大多数情况下,当您阅读here时,IBOutlet应该很弱。

现在,您可以在development library中阅读,并非所有类都支持弱引用。
(例如NSTextView)。这意味着您必须使用assign:

@property (assign) IBOutlet NSTextView *textView;

如果使用弱引用,则会出现以下错误:
“不允许合成弱不可用属性,因为它需要合成__weak对象的ivar”

文档遗漏提及的是现在您必须在使用该属性后再次将其设置为nil,例如通过 dealloc方法:
- (void)dealloc
{
self.textView = nil;
}

据我了解,标有 NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE的类不支持弱引用,但原因是什么?

最佳答案

我想我找到了某些类不支持弱引用的原因:

如您所见here:

理由:从历史上看,类可以通过重写保留,释放等来提供其自己的引用计数实现。但是,对对象的弱引用需要与其类的引用计数实现进行协调,因为除其他外,弱相对于最终版本,加载和存储必须是原子的。因此,如果不付出额外的努力,现有的自定义引用计数实现通常将不支持弱引用。在不破坏二进制兼容性的情况下这是不可避免的。

关于automatic-ref-counting - ARC项目中用于NSTextView的IBOutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12882710/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com