Applescript对行数有限制。

Applescript对行数有限制。,applescript,limit,lines,Applescript,Limit,Lines,我正在制作一个具有大量功能的应用程序。我的问题是applescript似乎有一个分界点。在一定数量的行之后,脚本停止工作。它基本上只工作到最后。一旦到达那个点,它就停止了。我已经移动了代码以确保它不是代码中的错误。帮助?我可能错了,但我认为长脚本不是放置代码的好方法。 这真的很难读取、调试或维护,因为一个部分中的一个微小更改可能会在文件的另一部分产生意外的后果 如果您的脚本很长,我建议您将代码分成多个部分 首先,如果代码的某些部分被多次重用,则可以使用函数。 这些函数的另一个好处是,您可以将它们

我正在制作一个具有大量功能的应用程序。我的问题是applescript似乎有一个分界点。在一定数量的行之后,脚本停止工作。它基本上只工作到最后。一旦到达那个点,它就停止了。我已经移动了代码以确保它不是代码中的错误。帮助?

我可能错了,但我认为长脚本不是放置代码的好方法。 这真的很难读取、调试或维护,因为一个部分中的一个微小更改可能会在文件的另一部分产生意外的后果

如果您的脚本很长,我建议您将代码分成多个部分

首先,如果代码的某些部分被多次重用,则可以使用函数。 这些函数的另一个好处是,您可以将它们与其他执行代码分开进行验证。 此外,它使您的代码更易于阅读

on doWhatYouHaveTo(anArgument)
 say "hello!"
end doWhatYouHaveTo
如果函数由不同的脚本使用,您可能希望将函数放在一个单独的库中,以便在需要时调用

set cc to load script alias ((path to library folder as string) & "Scripts:Common:CommonLibrary.app")
cc's doWhatYouHaveTo(oneArgument)
最后,我有时会做的一件事是使用一些参数调用不同的脚本,如果长代码适用于稍微不同的用途:

run script file {mainFileName} with parameters {oneWay}

最后一个技巧有一个巨大但奇怪的好处:它可以加速执行时间,原因我从未解释过(当我说加速时,我说对于相同的代码,执行时间减少了17左右)。

它只工作到最后?陛下这是打字错误还是我不明白?@FatalError这不是打字错误,但有点模糊。除了在一定长度的脚本之后,一切都可以运行。AppleScript确实有各种实际限制,一旦脚本增长太长,就会导致脚本开始失败。但是,当这种情况发生时,您将开始看到堆栈溢出和其他类型的错误出现,而不是脚本只是在某个点停止。脚本中是否有块样式注释(*…*)?这些注释类型的规则很复杂,可能会意外地转义大块代码。例如,如果块注释中有未关闭的字符串文字,则可能发生这种情况。@MarkAlldritt我认为我的脚本不太复杂。它主要是文本输入和if-then语句。我怀疑脚本逻辑的某些部分导致它比您预期的更早完成。尝试使用say命令等来完成每个步骤。在代码的下一步开始时说1,然后说2,然后说3。在整个脚本中继续这样做。这可以帮助您了解哪些步骤正在执行和完成,以及它们是否符合您预期的顺序。