脚本编辑器“损坏的字典”

Posted

技术标签:

【中文标题】脚本编辑器“损坏的字典”【英文标题】:Script Editor “Corrupted Dictionary” 【发布时间】:2013-12-01 01:38:36 【问题描述】:

我正在尝试在 OS X Mavericks 上创建 AppleScript 库。我已将文件作为脚本包保存到~/Library/Script Libraries;它有一个正确的(据我所知;见下文)sdef 文件,我已经设置了脚本定义字段。

但是,当我尝试保存我的脚本包时,AppleScript 编辑器给了我以下一般错误消息:“应用程序的字典已损坏。”我可以防止这种情况发生的唯一方法是在保存之前从文档中删除 all 文本 - 如果那里有 anything (甚至只是一条评论),AppleScript抛出错误。怎么回事?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary>
  <suite name="Regular Expressions" code="RExp" description="Commands for working with regular expressions">
    <command name="match" code="RExpMtch" description="Gets whether or not the regular expression matches.">
      <direct-parameter type="text" description="The regular expression to match." />
      <parameter name="against" code="targ" type="text" description="The string to match the regular expression against. "/>
      <parameter name="with options" code="opts" type="expression options" optional="yes" />
      <result type="expression match" />
    </command>

    <command name="default expression options" code="DOpt">
        <result type="expression options" />
    </command>

    <class name="expression match" code="Rslt" description="The output of a match command.">
        <contents type="text" name="capture group" code="Mgrp" />
        <property type="boolean" name="success" code="OK? " access="r" />
    </class>

    <class name="expression options" code="opts">
      <property name="case sensitive" code="Case" type="boolean" access="rw" />
      <property name="single line flag" code="S\n " type="boolean" access="rw" />
      <property name="multiple line flag" code="M\n " type="boolean" access="rw" />
    </class>
  </suite>
</dictionary>

上面的sdef代码也是Here

【问题讨论】:

【参考方案1】:

您收到错误的主要原因是命令格式错误;

< command name="default expression options" code="DOpt">
            <result type="expression options" />
</command>

删除它允许脚本编译。

此外,您不应使用所有小写代码。它们是为 Apple 的代码保留的,可能会发生冲突

【讨论】:

谢谢,它成功了。但是,为什么该命令首先无效? 因为它只有一个 4 位数的代码。命令必须有 8 个。你应该注意:developer.apple.com/wwdc/videos/index.php?id=416。也可能有其他问题..

以上是关于脚本编辑器“损坏的字典”的主要内容,如果未能解决你的问题,请参考以下文章

Vi编辑的shell脚本如何执行啊?

Unity3DUnity 脚本 ② ( Visual Studio 2019 中的 Unity 编译环境配置 | Unity 编辑器关联外部 C# 脚本编辑器 Visual Studio )

如何使用新的 Apps 脚本编辑器测试 Google Docs 的编辑器插件?

shell脚本编程-sed编辑器

SSIS 包脚本任务编辑器停止工作

如何仅在 Unity 编辑器启动时运行脚本?