2015-04-30 50 views
2

我不知道该怎么称呼标题,但是我正在研究一个从iTunes中取出/推送信息并保存的Applescript。在开发我的Applescript的过程中,我发现如果我要学习一门语言,那么我将学习Swift,因为我希望开发更先进的程序。尽管Applescript同样有用,而我正在做的是在Applescript中工作......我想要学习下一步,以使用Swift开发程序和脚本。我希望能够使用Swift复制我能够在Applescript中做的事情。Swift语言的应用程序(应用程序控制)

我想知道的是,如果有关于怎么样AppleScript的是能够做的,从无障碍检查的/ etc和控制程序读取数据的教程/指南,等...

为了给你一个什么关于我在Applescript中能做的背景,这是一个非常基本的版本Batch Apple ID Creator。我在一个现在使用MDM管理智能设备的小型学区工作。那么,对于MDM,每个设备都需要拥有自己的苹果ID,手动创建500+苹果ID并不像听起来那么有趣。这些是我在Applescript中重新创建的一些步骤。

  • 检查是否iTunes的运行
  • 检查,看看是否有当前用户登录。
  • 点击“退出”下的菜单栏,如果当前用户登录。
  • 转到“创建的Apple ID ...”

我把当前的脚本是个明白的Git回购,做了一些修改,以便它与iTun最新版本的作品es(12.1.2)。在做了一些修改之后,我想要学习并开始重写脚本,以充分理解它的工作原理并学习Applescript语法。

让我知道你是否需要关于我想要做的更多信息。

Throdne

+0

请在你的文章中加入[你尝试过](http://mattgemmell.com/what-have-you-tried/)。 – milo526

+0

如果您想自动化Mac应用程序,请学习AppleScript。如果你想写Mac应用程序,学习Swift。 [两个]上有很多[书籍](http://www.amazon.com/gp/search/keywords=applescript)(http://www.amazon.com/gp/search/keywords=swift+language );我建议你从其中一个开始。 – foo

+0

我建议你同时学习。如果你想控制你在swift中编写的应用程序中的其他应用程序,你很可能会在swift中使用applescript桥接语法或命令来包含applescript,以运行applescript命令。 – markhunte

回答

5

我正在调查这类事情。令我惊讶的是,你可以使用Swift作为脚本语言。我写了几个使用简单'shebang'行的简短脚本#!/ usr/bin/swift

要访问AppleScript功能,您几乎必须从Swift代码中调用AppleScript(通过Cocoa)。

下面是一个例子,我在别处找到了:

Swift代码

let myAppleScript = "..." 
var error: NSDictionary? 
if let scriptObject = NSAppleScript(source: myAppleScript) { 
    if let output: NSAppleEventDescriptor = scriptObject.executeAndReturnError(
                     &error) { 
     println(output.stringValue) 
    } else if (error != nil) { 
     println("error: \(error)") 
    } 
} 

尝试搜索 '称,从斯威夫特的AppleScript'(或可可)或 '呼叫来自雨燕的AppleEvents'(或可可)。

+0

您是否也可以提供一个苹果脚本示例。我收到每个苹果脚本的错误..谢谢:) –

1

每种语言都有特定的用途。 AppleScript的优势在于通过AppleEvents进行的进程间脚本编写,而Swift的优势在于编写大型全功能应用程序。使用AppleScript,您可以使用JavaScript从Safari中获取网页的内容,使用shell脚本解析它,然后使用Mail将其发送到电子邮件中。大多数语言都无法像AppleScript那样轻松完成此类任务(包括Swift)。它们是互补的。你可以通过学习两种方法来做出令人惊叹的事情,但它们各有其局限性和优势。