0

私のプロジェクトでは、EventKit を使用して iPhone (iOS 5.1.1) のカレンダーにアクセスし、デフォルトのカレンダーからすべてのイベントを取得しています。それはうまくいきます。イベントごとに hasAlarms をチェックし、true の場合、アラームの時刻を知りたいと考えています。したがって、次のようなものです。

for (EKEvent *ev in allEventsArray){
            if ([ev hasAlarms]){
                NSArray *alarms = ev.alarms;
                for (EKAlarm *alarm in alarms){
                    NSLog(@"%@",alarm.absoluteDate);
                }
            }
}

問題は、NSLog に "(null)" が表示されることです。私は何が間違っているのか分かりません...

誰でも助けることができますか?よろしくお願いします!

4

1 に答える 1

2

EKAlarm にはabsoluteDateOR aがありrelativeOffsetます。absoluteDate が null の場合、relativeOffset は値を持ちます。

EKAlarm *alarmA = [EKAlarm alarmWithAbsoluteDate:[NSDate date]];
EKAlarm *alarmB = [EKAlarm alarmWithRelativeOffset: -300.0f];

NSLog(@"Absolute alarmA = %@", alarmA.absoluteDate);
NSLog(@"Absolute alarmB = %@", alarmB.absoluteDate);
NSLog(@"Relative alarmA = %f", alarmA.relativeOffset);
NSLog(@"Relative alarmB = %f", alarmB.relativeOffset);

NSLog の結果:

Absolute alarmA = 2012-07-27 00:19:06 +0000
Absolute alarmB = (null)
Relative alarmA = 0.000000
Relative alarmB = -300.000000
于 2012-07-27T00:25:25.457 に答える