5

iOS デバイスのカレンダーにリマインダーをプログラムで追加するアプリがあります。

iOS 5 より前のバージョンでは、次のように 2 つのアラームを含むカレンダー アイテムを追加できました。

EKEventStore* eventStore = [[EKEventStore alloc] init];
EKEvent* event = [EKEvent eventWithEventStore:eventStore];
// set startDate, endDate, title, location, etc.

[event addAlarm:[EKAlarm alarmWithRelativeOffset:60.0f * -5.0f]]; // 5 min
[event addAlarm:[EKAlarm alarmWithRelativeOffset:60.0f * -15.0f]]; // 15 min

[event setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError* error = nil;
BOOL success = [eventStore saveEvent:event span:EKSpanThisEvent error:&error]; 

iOS 5 では、これによりアプリケーションがフリーズします。エラーで返されることはありません。返されることはありません。

addAlarm を 1 回だけ呼び出すと、期待どおりに機能します。

iOS 4.2 では、addAlarm を 2 回呼び出すだけで問題なく動作します。

私は何か間違ったことをしていますか?

4

4 に答える 4

1

Appleのバグです。2 つのアラームを設定すると、アプリがフリーズします。1 だけを設定すると、問題なく動作します。これは iOS 5.1 で修正されました。

于 2012-01-06T06:36:39.940 に答える
0

変数を使用してaddAlarmを呼び出してみましたか?

EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:60.0f * -5.0f]]; // 5 min
[event addAlarm:alarm];

EKAlarm *alarm2 = [EKAlarm alarmWithRelativeOffset:60.0f * -15.0f]]; // 15 min
[event addAlarm:alarm2];
于 2011-10-21T12:10:35.373 に答える
0

iOS4.3ドキュメントからのiOS5の変更点のEventKitセクションを見ると、一部のアイテムがEKEventで非推奨になっていることがわかります。階層が変更され、新しい抽象スーパークラスEKCalendarItemが追加されました。

于 2011-10-24T18:37:25.873 に答える
0

I had the same error.

The problem seems that startDate shoudln't be the same as endDate... really silly iOS change!

于 2011-10-26T15:09:47.130 に答える