所以我有一个用c ++编写的代码。我试图通过应用程序获得用户的偏好。根据发送的值,我需要更新plist中的密钥。我在C ++中找不到任何方法。有什么建议?
答案 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(您可能希望在您的案例中查看NSBundle
和NSPropertyListSerialization
。