一般的NSPasteboard能占用多少内存?

hol*_*ow7 5 memory ram cocoa objective-c nspasteboard

一般的 NSPasteboard 存储用户复制的内容。例如,100 张图片和 1000 个单词。一般 NSPasteboard 的大小是否有限制,以便用户最多可以复制 99 个图像?

这个限制是由什么定义的?内存还是高清还是..?

Pet*_*sey 4

是的。

对于粘贴板的大小,没有记录的强制限制(我可以找到)。然而,一切都是有限的。如果您将太多内容复制到任何粘贴板(无论是通用粘贴板、查找粘贴板、拖动粘贴板还是任何其他粘贴板),您要么会达到未记录的限制,要么会将系统带入分页地狱。(即使最后一部分也不能真正保证;我上次检查时粘贴板使用 RAM,但理论上它现在或将来都可以写入磁盘。)

如果您打算复制大量数据,我建议您改为承诺。如何执行此操作取决于您使用的是较旧的基于类型和数据的 API,还是较新的基于项目的 API。这需要更多工作,但这意味着您只需要在用户将数据粘贴到某处时引入该数据。

  • 澄清一下,承诺意味着您不是立即将数据发送到粘贴板,而是发送一个承诺,即在实际需要时(例如,当用户实际使用“粘贴”命令时)发送数据。通常,您还需要在应用程序退出时提供数据,但是如果数据非常大,您可以提示用户是否要丢弃粘贴板,这就是 Photoshop 所做的。 (4认同)