gpt4 book ai didi

objective-c - NSPasteboard 是否保留所有者对象?

转载 作者:行者123 更新时间:2023-12-03 16:49:19 26 4
gpt4 key购买 nike

您可以像这样调用NSPasteboard:

[pboard declareTypes:types owner:self];

这意味着粘贴板稍后会要求所有者根据需要提供类型的数据。然而,我无法从文档中找到(也许我错过了一些明显的东西),是否保留 owner

实际上,我担心的是,如果所有者是一个引用,它可能会被释放,如果粘贴板随后尝试向其请求数据,则会导致崩溃。

注意:我可能应该澄清一下,我对此更感兴趣,因为它有助于追踪错误,而不是让我的应用程序依赖它。但我确实也希望文档得到澄清。

最佳答案

文档:

newOwner

The object responsible for writing data to the pasteboard, or nil if you provide data for all types immediately. If you specify a newOwner object, it must support all of the types declared in the newTypes parameter and must remain valid for as long as the data is promised on the pasteboard.

翻译:粘贴板可能会也可能不会保留所有者。是否确实如此是您不应该依赖的实现细节。只要所有者仍担任所有者,您就有责任保留该所有者。

文档所说的“保持有效”实际上是指您可能懒惰提供的代理内容。 IE。如果用户要复制某些内容,您不希望当用户进行进一步编辑并打算稍后粘贴时,复制内容的所有者表示会发生变化。

文档没有提及所有者的保留/释放策略(也没有任何类型的总括规则声明)。应该澄清(rdar://8966209 提交)。事实上,对保留/释放行为做出假设是危险的。

关于objective-c - NSPasteboard 是否保留所有者对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4920952/

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