Applescript 是否需要恢复文本项分隔符?

Applescript 是否需要恢复文本项分隔符?,applescript,Applescript,通常建议使用文本项分隔符的方法如下: set tid to AppleScript's text item delimiters set AppleScript's text item delimiters to "x" set l to text items of "aaxbb" set AppleScript's text item delimiters to tid l 但我通常会这样做: set text item delimiters to "x" text items of "aa

通常建议使用文本项分隔符的方法如下:

set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "x"
set l to text items of "aaxbb"
set AppleScript's text item delimiters to tid
l
但我通常会这样做:

set text item delimiters to "x"
text items of "aaxbb"
:

重要的是要注意这样的信息:“总是让他们后退”。AppleScript会记住其分隔符设置。即使在脚本编辑器中打开新的第二个脚本,在第一个脚本中设置的分隔符也将在第二个脚本中应用

不过我还没能复制出来。在某些版本的OS X中,行为是否发生了变化

:

只要AppleScript脚本组件的此实例存在,文本项分隔符的值就会保持不变。由于您可能会在该脚本组件存在的情况下运行多个脚本,其中任何脚本都可能设置文本项分隔符,因此明智的做法是不要假设文本项分隔符的值


还是这样,或者你能举一些例子说明文本项分隔符属性会影响其他脚本吗?

我记得读过一些关于你所说的更改的文章,不再需要重置它们,但是在谷歌搜索后我找不到任何关于它的信息。因此,我做了一个快速测试。我制作了这两个脚本,并在AppleScript编辑器中运行它们。首先这个

set text item delimiters to "something"
return text item delimiters
return text item delimiters
然后这个

set text item delimiters to "something"
return text item delimiters
return text item delimiters
第二个脚本返回{”“}。因此,第一个脚本似乎不会影响第二个脚本。我在10.6和10.8中测试了这一点,得到了相同的结果

以下是applescript发行说明。我找不到10.7或10.8的发行说明。搜索它们也找不到关于这个主题的任何东西

http://developer.apple.com/library/mac/#releasenotes/AppleScript/RN-AppleScript/RN-10_3/RN-10_3.html#//apple_ref/doc/uid/TP40000982-CH103-SW1
因此,我没有确切的答案给你。每个人都说要重置它们,但我的简单测试表明这不是必需的

另外,您是对的,您不需要在告诉块之外使用“Applescript”。

我在Applescript基础知识>Applescript中的全局常量>文本项分隔符一节中找到了这条小贴士:


如果在脚本编辑器中更改“文本项分隔符”属性,则在恢复其以前的值或退出脚本编辑器并再次启动它之前,该属性将保持更改状态。如果更改脚本应用程序中的文本项分隔符,则在恢复其以前的值或脚本应用程序退出之前,该分隔符在该应用程序中保持更改状态;但是,在脚本编辑器或运行的其他脚本应用程序中,分隔符不会更改



如果您运行一个脚本应用程序,那么我想从技术上讲,没有必要让它们休息,因为一旦它退出,它就退出了

但是,如果您在脚本编辑器中运行脚本,那么对分隔符的更改将保留在脚本编辑器中的该脚本中。我今天才看到

但几年前发生的变化是,它不会影响在脚本编辑器中打开的其他脚本/窗口


另外,当作为应用程序运行时,它只影响特定的脚本。

我仍然无法复制它,或者我用错误的方式解释它。如果行为在某个时候发生了更改,则可能是AppleScript语言指南没有更新以反映更改。