UIPasteboard 在哪里存储数据?

Where does UIPasteboard store data?

如果设置了 UIPasteboard 对象 'persistent',UIPasteboard 的项目似乎存储在数据库或类似的东西中。那么有什么提示可以让我找到数据存储在系统中的位置吗? 越狱。 提前致谢。

粘贴板由位于 /System/Library/Frameworks/UIKit.framework/Support/pasteboarddcom.apple.UIKit.pasteboardd 守护程序管理。它不会一直 运行 ,只有当有人真正需要它时,即使用 copy/paste.

它确实使用了持久存储 - /var/mobile/Library/Caches/com.apple.UIKit.pboard/pasteboardDB 二进制 属性 列表。即使您 SIGKILL 守护进程,它也会从数据库中恢复粘贴板内容。

pasteboardDB 根对象是 NSArray。每个元素都是一个绑定到特定包 ID 和名称的 NSDictionary 对象。例如,一般 copy/paste 使用共享存储 - 字典有 bundle->com.apple.UIKit.pboardname->com.apple.UIKit.pboard.general 键。在 items 键下有一个粘贴板项目数组。 Yoy 可以尝试复制一些文本,您会发现它作为未加密的 UTF8 字符串存储为 NSData 对象。