你可以NSPasteboard
这样调用:
[pboard declareTypes:types owner:self];
这意味着粘贴板稍后会要求所有者根据需要提供类型的数据。但是,我无法从文档中找到(也许我错过了一些明显的出血),是是否owner
保留。
实际上,我担心的是,如果所有者是弱引用,它可能会被释放,如果粘贴板随后尝试从它请求数据,则会导致崩溃。
注意:我可能应该澄清一下,我对此感兴趣更多是为了帮助追踪错误,而不是让我的应用程序依赖它。但我也希望澄清文档。
你可以NSPasteboard
这样调用:
[pboard declareTypes:types owner:self];
这意味着粘贴板稍后会要求所有者根据需要提供类型的数据。但是,我无法从文档中找到(也许我错过了一些明显的出血),是是否owner
保留。
实际上,我担心的是,如果所有者是弱引用,它可能会被释放,如果粘贴板随后尝试从它请求数据,则会导致崩溃。
注意:我可能应该澄清一下,我对此感兴趣更多是为了帮助追踪错误,而不是让我的应用程序依赖它。但我也希望澄清文档。
文档:
新主人
负责将数据写入粘贴板的对象,如果您立即为所有类型提供数据,则为 nil。如果您指定一个 newOwner 对象,它必须支持在 newTypes 参数中声明的所有类型,并且只要数据在粘贴板上承诺,它就必须保持有效。
翻译:粘贴板可能会或可能不会保留所有者。它是否是您不应该依赖的实现细节。只要所有者作为所有者,您就有责任保留所有者。
文档所说的“保持有效”实际上是指您可能懒惰地提供的代理内容。即,如果用户要复制某些内容,您不希望所有者对所复制内容的表示发生变化,因为用户进行了进一步的编辑并打算稍后粘贴。
该文档没有说明所有者的保留/释放政策(也没有任何形式的一揽子规则声明)。应该澄清(rdar://8966209 归档)。事实上,对保留/释放行为做出假设是危险的。