Objective c 普通NSPasteboard可以占用多少内存?

Objective c 普通NSPasteboard可以占用多少内存?,objective-c,cocoa,memory,ram,nspasteboard,Objective C,Cocoa,Memory,Ram,Nspasteboard,通用NSPasteboard存储用户复制的内容。例如,像100个图像和1000个单词。普通NSPasteboard的大小是否有限制,以便用户可以复制,例如。。最多99张图片 什么定义了这个限制?RAM或HD或..?是 粘贴板的大小没有文件规定的强制限制(我可以找到)。然而,一切都是有限的。如果您将太多内容复制到任何粘贴板(无论是普通粘贴板、查找粘贴板、拖动粘贴板或任何其他粘贴板),您要么会达到未记录的限制,要么会使系统陷入分页地狱。(即使是最后一部分也不能保证;我上次检查时,粘贴板使用RAM,但

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

什么定义了这个限制?RAM或HD或..?

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


如果你打算复制大量数据,我建议你答应。如何做到这一点取决于您使用的是较旧的基于类型和数据的API,还是较新的基于项的API。这需要更多的工作,但这意味着您只需要在用户将数据粘贴到某个位置时输入该数据。

只是为了澄清,承诺意味着您没有立即将数据发送到粘贴板,而是承诺在实际需要时发送数据(例如,当用户实际使用粘贴命令时)。一般来说,当你的应用程序退出时,你也需要提供数据,但是如果数据非常大,你可以提示用户是否要丢弃粘贴板,这就是Photoshop所做的。只是澄清一下,我并不是说Photoshop是用户交互设计的典范(!),但在我看来,它确实能正确处理非常大的剪贴板内容。