从 c++ 代码编辑 plist



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

您可以通过使用 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

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

无论如何,在我看来,处理这种事情的最好和最安全的方法是在.mm文件中为objective-c/cocoa代码编写小型c ++包装器。然后,您可以使用适当的可可工具来可靠地定位和操作 plist(您可能想查看内部NSBundle并在您的案例中NSPropertyListSerialization(。

最新更新