カスタムタイムゾーンで使用する場合、EKEventEditViewController に奇妙な問題があります。次の 2 つの状況では、動作が異なります。
状況 1 -正常に動作します:
- アプリを起動
- EKEventEditViewController を作成して、startDate = [NSDate date] で新しいイベントを追加します
- 新しいイベントの開始は正しく表示されます(現在の時刻)
- [NSTimeZone setDefaultTimeZone:otherTimeZone] でデフォルトのタイムゾーンを変更します
- EKEventEditViewController を作成して、startDate = [NSDate date] で新しいイベントを追加します
- 新しいイベントの開始が正しく表示されます (タイム ゾーンに調整された現在の時刻)
状況 2 -予期しない動作:
- アプリを起動
- [NSTimeZone setDefaultTimeZone:otherTimeZone] でデフォルトのタイムゾーンを変更します
- EKEventEditViewController を作成して、startDate = [NSDate date] で新しいイベントを追加します
- 新しいイベントの開始が正しく表示されない (システムのタイムゾーン オフセット + デフォルトのタイムゾーン オフセット)
- デフォルトのタイムゾーンをシステムのタイムゾーンに戻します [NSTimeZone setDefaultTimeZone:[NSTimeZone systemTimeZone]]
- EKEventEditViewController を作成して、startDate = [NSDate date] で新しいイベントを追加します
- 新しいイベントの開始が正しく表示されない (システムのタイムゾーン オフセット + デフォルトのタイムゾーン オフセット)
EKEventEditViewController の最初の表示で、デフォルトのタイムゾーンを何らかの形でキャッシュし、それをオフセットとして使用すると思います。
誰かが同様の問題に直面しましたか?これはバグですか、それとも何か不足していますか?