我完全不知道从哪里开始。我想在Objective-C中构建一个与iTunes交互的OS X应用程序,即添加歌曲,电影,播放或暂停等。在OS X应用程序上与iTunes进行互动
现在,我知道在Windows中,我可以使用COM要做到这一点,我已经尝试过了。在OS X中有类似的东西吗?应用程序通常如何相互通信或他们如何公开其API?
我应该阅读什么协议?
我完全不知道从哪里开始。我想在Objective-C中构建一个与iTunes交互的OS X应用程序,即添加歌曲,电影,播放或暂停等。在OS X应用程序上与iTunes进行互动
现在,我知道在Windows中,我可以使用COM要做到这一点,我已经尝试过了。在OS X中有类似的东西吗?应用程序通常如何相互通信或他们如何公开其API?
我应该阅读什么协议?
您在OS X上寻找的是脚本或“自动化”和AppleScript。这里有一些简短的故事,有一些链接可以帮助你:
主要应用程序(当然也有iTunes,我有一些经验)公开了对象,方法和属性等的“脚本字典”,它们可以通过系统脚本框架。
这通常由AppleScript环境中的脚本完成。 AppleScript是一种语言,它针对OS X上的底层脚本基础架构。您可以wade into that here。还有其他方法可以与脚本基础结构进行交流,但您应该了解AppleScript语言是否是唯一的“一流”方式,因此应用程序响应方式的语义倾向于与AppleScript与他们谈话的方式是不可分割的。 (更多内容)
查看标准(虽然简约)用户级别编辑器中的“脚本编辑器”应用程序(已安装在Mac上,只需打开Spotlight),并尝试使用File->Open Dictionary
命令检查字典的一些应用程序(如iTunes)。
如果你想谈论到iTunes从您的应用程序,不过,并没有从自己的一次性脚本,你有几个选项(这些都是很容易混淆,但实际上是相当独立的):
我不知道你在找什么,在复杂的iTunes互动,但这里有一些重要的事情要知道当你上手:
谢谢你的完整答案!基本上,这将是一个Cocoa应用程序,所以我可能会使用Scripting Bridge或NSAppleScript!不相关,但是,你知道苹果是否正在计划更新或删除更强大的AppleScript吗? – CoachNono
@ CoachNono。别客气。我刚刚完成了一个复杂的iTunes集成,所以这在我心中是全新的。 Yosemite刚刚推出了“用于自动化的Javascript”,它基本上是用于脚本框架的JS绑定。这看起来非常有希望,但是它没有足够的文档记录和直接打破尤其是与iTunes(不要打扰,它会打破你的心)。我不知道是否有更长期的计划,但我希望如此!它是一个强大的想法,当它的工作。祝你好运! –
目前,COM的内置Mac OS X等价物是Apple事件。实现它们的最简单方法是使用AppleScript,但不一定要;你可以直接形成原始的Apple事件。
碰巧你已经选择了一个应用程序(iTunes)很可沟通 - 使用Apple事件/ AppleScript。
AppleScript应该在这里帮助 – Volker
http://www.liquidx.net/eyetunes/是我与iTunes保持良好关系的首选 - 它直接处理AppleEvents的所有事情。这可能有点过时,但我敢打赌你找不到更快的东西! –
@零:有趣的链接。 EyeTunes似乎早于Scripting Bridge框架,它基本上做了同样的事情(将Apple事件IPC包装在类似OOP的界面中)。对于新项目,我推荐使用Scripting Bridge;它几乎肯定会一样快,并且对于某些用途可能会更快,并且它会让您访问完整的当前iTunes脚本字典。 –