-2

私の要件は、アクセサリ イベントとロケーション イベントの HMEventTrigger を作成する必要があることです。例: 私は acc1 というアクセサリーを持っていて、それはパワー特性を持っています。たとえば、acc1 がオンで、ある場所に到着したときに HMEventTrigger を作成したいとします。その場合、以下のように acc1 の述語を作成しました

HMCharacteristicWriteAction の述語

HMCharacteristicWriteAction *chWr = [writeActionsArr objectAtIndex:0]; 
NSPredicate *pred1 = [HMEventTrigger predicateForEvaluatingTriggerWithCharacteristic:chWr.characteristic relatedBy:NSEqualToPredicateOperatorType toValue:chWr.targetValue]; 

HMLocationEvent の述語

HMLocationEvent *b = (HMLocationEvent*)[locationsArr objectAtIndex:0];
NSDateComponents *com = [[NSDateComponents alloc] init];
NSPredicate *pred2 = [HMEventTrigger predicateForEvaluatingTriggerOccurringOnDateWithComponents:com];

例: IF ACC1.ON AND LOCATIONEVENT THEN PERFORM HMACTIONSET

pred1 オブジェクトと pred2 オブジェクトの両方を組み合わせると、現在の日付も含まれますが、日付は含めたくありません。そのため、時刻や日付を含めずに pred1 と pred2 を使用してトリガーを作成する必要があります。場所のみを含める必要があります。私の投稿を読んでくれてありがとう。どんなアイデア/提案も役に立ちます。

4

1 に答える 1

1

あなたの問題文は明確ではありません。おそらく、配列HMEventTrigger内の唯一のオブジェクトとしてロケーション イベントを使用して新しいものを作成しますか?events

HMHome *home = ... // home
HMLocationEvent *locationEvent = ... // your event variable
NSDateComponents *dateComponents = [[NSDateComponents alloc] init]; // create your date components
HMEventTrigger *trigger = [[HMEventTrigger alloc] initWithName:@"eventName" events:@[locationEvent] predicate:[HMEventTrigger predicateForEvaluatingTriggerOccurringOnDateWithComponents:dateComponents]];
[home addTrigger:trigger completionHandler:^(NSError *error) {
     // ...
 }];
于 2016-07-18T19:28:36.283 に答える