AppleScript: Handler

AppleScript绝对是个奇葩的存在!不管功能有多强大。

Handler有两种,一种是和OC类似的使用Label参数,一种是和javascript类似的使用括号把一堆参数都放在里面的。

label参数的Handler的写法非常奇怪,光看文档绝对让人迷糊。这里按照我的理解说一下。

on handleName of 第一个参数 [ASLabel 参数名...] [given label名:参数名[, label名:参数名...]]

这里解释一下。方括号括起来的是可以没有的。也就是只有一个参数的时候可以只在handlerName后面加一个of然后参数名就可以。这个简单,不多说。后面的比较麻烦。如果多余一个参数的时候,第二部分完全可以不要。只按照形式:given label名: 参数名的形式给出就可以。按照上面的形式可以推想到,使用given的形式可以给出很多的参数。比如:

on handlerName of firstone given another: anotherone, andone: anotherone1, andanotherone:anotherone2, andanotheragain:anotherone3

好的,回到handler定义形式的ASLabel部分。ASLabel是苹果系统定义的,而且在handler的定义中每一个ASLabel只能出现一次!郁闷就在于,苹果文档给出的这些关键词居然有无效的!看报错信息把,如果提示说“需要用到into什么的,而没有遇到”,那么恭喜你,你用的ASLabel不是系统定义的那个。

在调用label形式的handler的时候和定义的时候形式是一样的。这里主要针对的是后面的given定义形式。

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/p/4156665.html

时间: 2024-08-04 12:30:55

AppleScript: Handler的相关文章

软件-raise without handler Adobe Acrobat DC

问题描述 raise without handler Adobe Acrobat DC Adobe Acrobat DC这个软件打不开了,双击就会出现raise without handler,在网上看到的都是对Adobe reader的解决方法,不知道怎么解决这个 解决方案 又重新安装了一个破解版的,呵呵.. 解决方案二: How to Insert OLE Object (Adobe Acrobat Document) in Word with C#(如何使用C#在Word中插入OLE对象-

如何利用Handler更新android的UI

  提出问题 新手刚开始接触Android线程编程的时候,会想到如下使用如下代码: 复制到剪贴板  Java代码 new Thread( new Runnable() {         public void run() {              myView.invalidate();         }            }).start();     但是:该实现方法是不可行的. 分析问题: 因为:Android UI操作并不是线程安全的,这些操作必须在UI线程中执行. 1.my

Handler 系列一:如何使用

Handler 是什么? 为什么需要 Handler? Handler 如何使用? handler 存在的问题及改进? Handler:是一个消息分发对象,进行发送和处理消息,并且其 Runnable 对象与一个线程的 MessageQueue 关联.作用:调度消息,将一个任务切换到某个指定的线程中去执行. 为什么需要 Handler? 子线程不允许访问 UI 假若子线程允许访问 UI,则在多线程并发访问情况下,会使得 UI 控件处于不可预期的状态.传统解决办法:加锁,但会使得UI访问逻辑变的复

消息-Android中的handler机制

问题描述 Android中的handler机制 请教大神,handler发消息可以从这个activity发送到另外一个activity吗? 解决方案 Handler 变量的定义,一般在一个 Activity 中,想要在两个 Activity 之间通过 Handler 变量,也就是说两个 Activity 都必须能看到此 Handler 变量. 这样的实现方式,就算是能实现,也不好! Activity 之间,还是通过 Receiver,如:BroadcastReceiver 来进行通讯比较好. 解

使用VS在标准Web Part 部件中创建Event Handler

为Web Part部件创建Events是生成Web Parts部件的核心部分.本文主要讲解如何使用Visual Studio在标准Web Part 部件中创建事件处理器. 1. 打开Visual Studio 创建新的空白SharePoint项目SPWebPartEvent,点击确定.部署为场解决方案. 2. 右击项目添加新Web部件SampleEventWebPart.点击确定. 3. 打开SampleEventWebPart.webpart,修改它的标题和描述属性. <?xml versio

Android使用Handler进行实例化(new)时报错的原因及解决方法

Android使用Handler进行实例化(new)时, 如: private Handler handler = new Handler(); 会报错"Handler is abstract, cannot be instantiated.", 提示使用, 其他实例化方式. 原因: 导入(import)库发生错误, 使用Android的句柄(handler)库, 不是java的句柄库; 使用"import android.os.Handler;" 代替 "

Anroid开发之Handler的使用方法

如果在需要在Activity中一个耗时的操作,例如当我们需要联网读取数据, 或者读取本地较大的一个文件的时候,不能把这些操作放在主线程中.因为如果 放在主线程中的话,界面会出现假死现象, 如果5秒钟还没有完成的话,会收到 Android系统的一个错误提示 "强制关闭".这个时候我们需要把这些 耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,Android主线程是 线程不安全的,也就是说,更新UI只能在主线程中更新,子线程中操作是危险的 .这个时候,Handler就出现了,来解决

在Android中使用Handler和Thread线程执行后台操作

大家都知道,在PC上的应用程序当需要进行一些复杂的数据操作,但不需要界面UI的时候 ,我们会为应用程序专门写一个线程去执行这些复杂的数据操作.通过线程,可以执行例如 :数据处理.数据下载等比较耗时的操作,同时对用户的界面不会产生影响.在Android应用 程序开发中,同样会遇到这样的问题.当我们需要访问网络,从网上下载数据并显示在我们 的UI上时,就会启动后台线程去下载数据,下载线程执行完成后将结果返回给主用户界面线 程. 对于线程的控制,我们将介绍一个Handler类,使用该类可以对运行在不同

Android Handler、Message完全解析,带你从源码的角度彻底理解

之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会 恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年 中国战队能够虎起! 开始进入正题,我们都知道,Android UI是线程不安全的,如果在子线程中尝试 进行UI操作,程序就有可能会崩溃.相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也 是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handle