- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八部分:创建动作集(Action Sets)和触发器(Triggers)
第⼋部分:创建动作集 (Action Sets)和触发器 (Triggers)
⼀个动作集合HMActionSet和触发器HMTimerTrigger允许你同时控制多个智能电器。
⽐如,⼀个动作集合可能会在⽤户上 休息之前执⾏⼀组动作HMAction 。⼀个写动作
向⼀个特性写⼊了值。动作集合中的动作是以不确定的顺序执⾏的。⼀个触发器会在
⼀个特定的时间出发⼀个动作集并可以重复执⾏。每⼀个动作集合在⼀个家庭中都有
唯⼀的名称并可被Siri识别。
创建写⼊动作
写⼊动作会向⼀个服务的特性写⼊值并被加⼊到动作集合中去。HMAction类
是HMCharacteristicWriteAction具体类的抽象基类。⼀个动作有⼀个相关联的特性对
象,你可以通过Accessing Services and Characteristics中描述的来获取相关的服务和特
性,然后创建这个HMCharacteristicWriteAction 。
为了创建⼀个动作,我们使⽤HMCharacteristicWriteAction类中的
initWithCharacteristic:targetValue:⽅法。
HMCharacteristicWriteAction *action = [[HMCharacteristicWriteActio
在你的代码中,你使⽤对应的特性的期望来替换value参数,并使⽤对应的
HMCharacteristic对象来替换characteristic参数。
创建并执⾏动作集
⼀个动作集就是⼀个共同执⾏的动作的集合。⽐如⼀个夜间动作集合可能包含关闭电
灯,调低恒温⽔平和锁上房门。
为了创建⼀个动作集我们使⽤addActionSetWithName:completionHandler:异步⽅法。
[self.home addAction etWithName:@NightTime completionHandler:^(H
if (error == nil) {
// 成功添加了⼀个动作集
} else {
// 添加⼀个动作集失败
}
}];
为了添加⼀个动作到动作集,我们使⽤addAction:completionHandler:异步⽅法。
[action et addAction:action completionHandler:^(N Error *error) {
if (error == nil) {
// 成功添加了⼀个动作到动作集
} else {
// 添加⼀个动作到动作集失败
}
}];
想要移除⼀个动作,可使⽤removeAction:completionHandler:⽅法。
想要执⾏⼀个动作集,可使⽤HMHome类的executeActionSet:completionHandler:⽅
法。⽐如,⽤户希望控制所有的节⽇彩灯。我们就创建⼀个动作集来打开所有的节⽇
彩灯,另外⼀个动作集来关闭所有的节⽇彩灯。为了打开所有的节⽇彩灯,发送
executeActionSet:completionHandler:消息给home对象,并传递打开节⽇彩灯动作集。
创建并开启触发器
触发器会执⾏⼀个或多个动作集。iOS会在后台管理和运⾏你的触发器。HMTrigger类
是HMTimerTrigger具体类的抽象类。当你创建⼀个定时触发器时,你需要指定触发时
间和触发的周期。创建并开启⼀个定时触发器需要多个步骤来完成。
遵循下⾯⼏步来创建并启动⼀个定时触发器
创建⼀个定时触发器
.创建定时触发器。
self.trigger = [[HMTimerTrigger alloc] initWithName:name
fireDate:fireDate
timeZone:niL
recurrence:nil
recurrenceCalendar:nil];
触发时间必须设置在将来的某个时刻,第⼆个参数必须为0 .如果你设置了⼀个周期,
周期的最⼩值是5分钟,最⼤值是5周。关于如何使⽤NSDateComponents和NSCalendar
来设置周期,请阅读Date and Time Programming Guide
2. 添加⼀个动作集到触发器。
使⽤HMTrigger基类⽅法addActionSet:completionHandler: ,来添加⼀个动作集到触发
器。
3. 添加⼀个触发器到家庭。
使⽤HMHome类中的addTrigger:completionHandler:⽅法来添加
文档评论(0)