gpt4 book ai didi

ios - Apps Script vs Scripting Bridge v/s Custom AppleScript

转载 作者:行者123 更新时间:2023-11-28 22:00:27 25 4
gpt4 key购买 nike

我希望通过我的 ruby​​ 脚本访问 iTunes 应用程序并查看所有 3 个,我很困惑我应该选择哪个。似乎不再支持 Appscript http://appscript.sourceforge.net/因此我想把它从我的选项列表中删除。剩下 Scripting Bridge 和自定义 AppleScript(制作我自己的脚本)。

在网上阅读了有关缺陷和糟糕的文档后,我很困惑我应该从哪里开始?

有经验的用户请建议最好的脚本,或者是否还有其他有用的脚本。

谢谢!

最佳答案

这三个我都做过,但是使用 Objective C 作为调用语言,而不是 ruby​​。

AppleScript。您可以使用 osascript 从 ruby​​ 编写和调用 AppleScript。 AppleScript 在使用 AppleScript 编辑器 进行交互式开发方面提供了强大的支持。这很好用。但是...通过 osascript 调用很麻烦,而且每次与 iTunes 通话时都会调用一个额外的过程。您还必须解析 osascript 的输出——没什么大不了的,但绝对会让您偏离真正想要做的事情。

脚本桥。剩下的就是 Scripting Bridge 和 appscript。 Scripting Bridge 的优势在于它是 Apple 官方支持的代码。 Scripting Bridge 有缺点,但它确实有效,而且工具支持也很好。但是,我不知道您如何将它与 ruby​​ 集成——其他人可能想在那里发表评论。

应用脚本。 Appscript 作为卓越的桥接解决方案拥有良好的文档和强大的代表。 Matt Neuberg 已将 appscript 移至 github ( https://github.com/mattneub/appscript ),明确目标是使用该项目的 ruby​​ 部分。另一个分支 (https://github.com/abarnert/appscript/network) 添加了进一步的修复,这就是我要开始的地方。我自己 ( https://github.com/poulsbo/appscript ) 已将 Objective-C 更新到最新版本(大约 Xcode 6 beta 5),但我还没有触及 ruby​​ 方面。

Scripting Bridge 与 appscript。从用户的角度来看,我注意到 appscript 和 Scripting Bridge 之间的一个区别是 appscript 更明确(好)但也更冗长(不好)。这是获取对象的 name 属性的示例(伪 Obj C);你明确地做了一个getsend:

id result = [[[appscriptObject name] get] send];

而在 Scripting Bridge 中有一个隐式惰性求值,所以它看起来更像:

id result = [sbObject name];

在生成的 header 中,类型信息 也有不同的处理方式。我相信 Scripting Bridge 保留了更好的类型信息。

Appscript 在错误处理方面似乎更好,例如告诉你什么时候不可用。使用 Scripting Bridge,您似乎无论如何都会获得一个对象,并且在使用它之后,您必须查询它以查看 lastError 是什么。我发现该编码模式很难看。

向后看? 综上所述,正如您所指出的,问题在于 appscript 可能最好被视为“向后技术”。如果你采用它,你正在考虑自己支持/修复 appscript 中的任何问题,或者依赖其他人的修复。尽管它在今天 (OS X 10.9) 上似乎运行良好,但在未来您可能会遇到故障或需要进一步维护以保持其运行。另一方面,由于您拥有源代码,您可以自己解决问题。 Scripting Bridge 中的错误将由您控制。

如果你想扭转局面并向前看,你可能想看看 Apple 正在为 Yosemite 做些什么,将 JavaScript 作为新的 OSA 语言。但是,这偏离了您最初的问题,即关于 ruby​​ 和 iTunes 的问题。

底线。这里有各种权衡。

苹果脚本。谨慎行事。

脚本桥。一个不错的中间地带?但不确定如何从 ruby​​ 中使用。

应用脚本。对于业余爱好者/DIY 人。

JavaScript。对于早期采用者。

关于ios - Apps Script vs Scripting Bridge v/s Custom AppleScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com