使用 plistbuddy 从 plist 中的字典中读取所有键

sel*_*lva 5 dictionary plist ios

我想使用 plistbuddy 从 plist 中的字典中读取所有键并将值推入数组中。我知道下面的实用程序有助于阅读 plist。/usr/libexec/PlistBuddy

到目前为止,我正在对密钥进行硬编码以获取价值。例如:theKey =“selva”

所以我写下面的代码来获取上面键的值

val=$(function_stringFields "${theFile}" "${theKey}" "${index}")
Run Code Online (Sandbox Code Playgroud)

function_stringFields是自定义方法。)

有没有办法达到同样的效果。

小智 2

完成此操作的关键是 plistbuddy 的打印选项。如果没有参数,它将打印出所有行。

这是一个小脚本,它将加载键数组和值数组。

成功与否实际上取决于您在 plist 中构建的树类型。如果它是平的,你会更快乐。此示例也没有考虑值中的空格(它们将被删除)。

LINES=`/usr/libexec/PlistBuddy FrameworkList.plist -c print | grep = | tr -d ' '`

COUNTER=0

for PLIST_ITEMS in $LINES;
do
  KEY[${COUNTER}]=`echo $PLIST_ITEMS | cut -d= -f1`
  VALUE[${COUNTER}]=`echo $PLIST_ITEMS | cut -d= -f2`
  COUNTER=${COUNTER}+1
done
Run Code Online (Sandbox Code Playgroud)