ios – 如何使用PlistBuddy将数组添加到Plist?

ios – 如何使用PlistBuddy将数组添加到Plist?,第1张

概述这个问题是一个子问题/替代方法,通过这个问题来解决我想要做的事情: How can I use PListBuddy to copy an entry from one file to another? 我想使用PlistBuddy通过XCode构建脚本,使用Bash / Shell将条目从Plist文件A复制到Plist文件B.通过这样做,我不能使用PlistBuddy的“复制”功能.我必须复制 这个问题是一个子问题/替代方法,通过这个问题来解决我想要做的事情: How can I use PListBuddy to copy an entry from one file to another?

我想使用PListBuddy通过XCode构建脚本,使用Bash / Shell将条目从PList文件A复制到PList文件B.通过这样做,我不能使用PListBuddy的“复制”功能.我必须复制每个条目的所有元素,因为你不能添加/设置字典,但必须通过“条目”与PListBuddy交互.

我想要做的是获取PList文件A并将其标题/值数组存储为“PSMultiValueSpecifIEr”元素.我能够抓取数组中的元素并将它们打印到屏幕上,但是当我将它们添加到目标PList文件B中时,数组仍然是空的.

代码:(用于添加条目的代码)

# Configure the Entry${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX dict" ${DEST_PList}${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Type string 'PSMultiValueSpecifIEr'" ${DEST_PList}# RetrIEve the Additional FIEld ValuepreferenceTitle=`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:Title" $SOURCE_PList 2>&1`preferenceKey=`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:Key" $SOURCE_PList 2>&1`preferenceDefaultValue=`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:DefaultValue" $SOURCE_PList 2>&1`preferenceValues=`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:Values" $SOURCE_PList 2>&1`preferenceTitles=`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:Titles" $SOURCE_PList 2>&1`

添加新条目的代码:

# Set the Additional FIEld Values${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Title string $preferenceTitle" ${DEST_PList}${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Key string $preferenceKey" ${DEST_PList}${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:DefaultValue integer $preferenceDefaultValue" ${DEST_PList}####BORKEN####${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Values array $preferenceValues" ${DEST_PList}${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Titles array $preferenceTitles" ${DEST_PList}####BORKEN####

以下是代码片段,它生成以下数据:

echo "#########"echo "[$THIS] adding $preference: $preferenceDict"echo "#########"echo "Source: "`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:Values" $SOURCE_PList`echo "Source: "`$PListBUDDY -c "Print PreferenceSpecifIErs:$SOURCE_INDEX:Titles" $SOURCE_PList`echo "#########"echo "Destination: "`$PListBUDDY -c "Print PreferenceSpecifIErs:$DEST_INDEX:Values" $DEST_PList`echo "Destination: "`$PListBUDDY -c "Print PreferenceSpecifIErs:$DEST_INDEX:Titles" $DEST_PList`echo "#########"

以下是提供的数据,证明正在运输适当的油田

#########[addDeBUGSettingsMenu.bash] adding : Dict {    Titles = Array {        Meters        Feet    }    DefaultValue = 1    Values = Array {        1        2    }    Key = UserPreferences_UnitsKey    Type = PSMultiValueSpecifIEr    Title = Units}#########Source: Array {     1     2 }Source: Array {     Meters     Feet }#########Destination: Array { }Destination: Array { }#########

如果您对PListBuddy的无证功能有任何了解,请提供帮助. MAN页面非常纤薄,例子很远.

我想感谢你阅读本文并借助你的大脑来帮助我解决颈部的这种主要疼痛.

解决方法 可能有更好的方法来做到这一点,但我通过计算源数组中的元素然后单独复制它们来解决这个问题.

${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Titles array" ${DEST_PList}    ${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Titles:0 string 'Title_1'" ${DEST_PList} ${PListBUDDY} -c "Add PreferenceSpecifIErs:$DEST_INDEX:Titles:1 string 'Title_2'" ${DEST_PList} etc...
总结

以上是内存溢出为你收集整理的ios – 如何使用PlistBuddy将数组添加到Plist?全部内容,希望文章能够帮你解决ios – 如何使用PlistBuddy将数组添加到Plist?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1055004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存