将 EKEventEditViewController 与自定义时区一起使用时,我遇到了一个奇怪的问题。它在两种情况下表现不同:
情况 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 时,它会以某种方式缓存默认时区,然后将其用作偏移量。
有没有人遇到过类似的问题?这是一个错误还是我错过了什么?