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

从C++代码中编辑PLIST 所以我有一个用C++编写的代码。我试图通过应用程序获得用户的偏好。根据发送的值,我需要更新plist中的密钥。在C++中,我找不到任何方法。有什么建议吗,c++,macos,plist,C++,Macos,Plist,您可以通过使用系统调用执行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 st

您可以通过使用系统调用执行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的详细信息-

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

无论如何,我认为最好的和最安全的方法是在.mm文件中为Objto-C/COCOA代码编写小的C++包装器。然后,您可以使用适当的cocoa工具可靠地定位和操作您可能想要查看的plist,在您的案例中包括NSBundle和NSPropertyListSerialization