Итак, у меня есть код, написанный на с ++. Я пытаюсь получить предпочтение пользователя через приложение. В зависимости от отправленного значения мне нужно обновить ключ в plist. Я не могу найти способ сделать это в C ++. Какие-либо предложения?
Вы можете редактировать plist, выполнив команду plistbuddy с помощью системного вызова (). Пример добавления пары ключ-значение в файл plist с помощью system () приведен ниже.
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"
Более подробную информацию о плистбуде здесь — https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html
Я предполагаю несколько вещей здесь, потому что из ваших вопросов не совсем ясно, с какой настройкой вы работаете. Я предполагаю, что у вас есть приложение-какао с частью кода, написанного на c ++ (возможно, на основе какой-либо сторонней библиотеки GUI, например, FLTK, которая скрывает часть obj-C?).
Во всяком случае, на мой взгляд, лучший и самый безопасный способ сделать это — написать небольшие обертки на языке c ++ для кода target-c / cocoa в файле .mm. Затем вы можете использовать надлежащие средства какао, чтобы надежно определять местонахождение и манипулировать списком (вы, вероятно, хотите заглянуть внутрь NSBundle
а также NSPropertyListSerialization
в твоем случае).