从c ++代码编辑plist

时间:2014-12-17 15:33:20

标签: c++ macos plist

所以我有一个用c ++编写的代码。我试图通过应用程序获得用户的偏好。根据发送的值,我需要更新plist中的密钥。我在C ++中找不到任何方法。有什么建议?

2 个答案:

答案 0 :(得分:0)

您可以使用system()调用执行plistbuddy命令来编辑plist。下面给出了使用system()向plist文件添加键值对的示例。

system("/usr/libexec/PlistBuddy -c \"Add :ASSET_ID string '1'\" \"/Library/Application Support/MyApp/ABC.plist\"");

下面给出了系统调用的plistbuddy命令。

/usr/libexec/PlistBuddy -c "Add :ASSET_ID string '1'" "/Library/Application Support/MyApp/ABC.plist"

有关plistbuddy的详细信息 - https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html

答案 1 :(得分:0)

我在这里猜测一些事情,因为从你的问题来看,你正在使用的设置并不十分清楚。我假设您有一个cocoa应用程序,部分代码用c ++编写(可能基于某些第三方GUI库,例如FLTK,隐藏了obj-C部分?)。

无论如何,在我看来,最好和最安全的方法是在.mm文件中为objective-c / cocoa代码编写小的c ++包装器。然后,您可以使用正确的可可设施来稳健地定位和操纵plist(您可能希望在您的案例中查看NSBundleNSPropertyListSerialization