AppleScript语法优化问询:iTunes播放数据导入脚本疑问
解决AppleScript中检查Music plist键存在性的简洁写法
你编写的Music库数据导入脚本运行正常,但在检查Play Count这类键的存在性时,if exists会报错,当前用try结合class判断的写法确实可行,但有更简洁的替代方案:
方案1:检查键是否在记录的keys列表中
如果你的plist文件已被解析为AppleScript记录(record),直接判断目标键是否存在于记录的keys集合里即可,语法直观:
-- 假设plistData是你从xml/plist读取并解析后的记录对象 if "Play Count" is in keys of plistData then set targetPlayCount to plistData's "Play Count" -- 执行播放计数的导入逻辑 end if
方案2:判断返回值是否为missing value
AppleScript中访问不存在的键会返回missing value,可以直接基于这个特性做判断,省去额外的键检查步骤:
set targetPlayCount to plistData's "Play Count" if targetPlayCount is not missing value then -- 执行播放计数的导入逻辑 end if
这两种写法都比try+class判断更简洁,不需要捕获异常,代码可读性也更高。
内容的提问来源于stack exchange,提问作者Alekk32
相关产品推荐
相关产品推荐

