【问题标题】:Is restoring text item delimiters necessary?是否需要恢复文本项分隔符?
【发布时间】:2013-01-30 07:02:23
【问题描述】:

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

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"

http://macscripter.net/viewtopic.php?id=24725:

请务必注意以下信息:“始终将它们归还”。 AppleScript 会记住它的分隔符设置。即使您在脚本编辑器中打开新的第二个脚本,您在第一个中设置的分隔符也将应用于第二个。

虽然我无法重现它。某些 OS X 版本中的行为是否发生了变化?

AppleScript: The Definitive Guide:

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

仍然是这种情况,或者您能举出文本项目分隔符属性影响其他脚本的任何示例吗?

【问题讨论】:

    标签: applescript


    【解决方案1】:

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

    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”。

    【讨论】:

      【解决方案2】:

      我在 https://developer.apple.com/library/mac/#documentation/applescript/conceptual/applescriptlangguide/conceptual/ASLR_fundamentals.html 的 AppleScript 基础 > AppleScript 中的全局常量 > 文本项分隔符部分找到了这个花絮:


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


      【讨论】:

      • 我仍然无法重现它,或者我解释错了。如果行为在某个时候发生了变化,则 AppleScript 语言指南可能尚未更新以反映该变化。
      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-02
        • 1970-01-01
        • 1970-01-01
        • 2017-06-11
        • 2014-07-18
        • 2019-02-23
        • 1970-01-01
        • 2023-04-06
        相关资源
        最近更新 更多