iOS 3.1 上的 NSDateComponents setTimeZone NSInvalidArgumentException
Posted
技术标签:
【中文标题】iOS 3.1 上的 NSDateComponents setTimeZone NSInvalidArgumentException【英文标题】:NSDateComponents setTimeZone NSInvalidArgumentException at iOS 3.1 【发布时间】:2010-12-17 09:11:21 【问题描述】:[NSDateComponents setTimeZone:] 函数在 ios 3.1 中崩溃,给出 NSInvalidArgumentException。但它在更高的 iOS 版本上运行良好。有没有人对此有解决方案? 提前致谢。
【问题讨论】:
【参考方案1】:此方法(公开)仅从 4.0 操作系统开始可用,因此您不得在 3.x 操作系统上调用该方法 - 在调用它之前执行运行时检查 NSDateComponent 实例是否响应选择器:
NSDateComponents* comps = ...;
if ([comps respondsToSelector:@selector(setTimeZone:)])
[comps setTimeZone:zone];
【讨论】:
感谢您的快速回复。我还能用什么来设置时区?我需要这个,因为如果我不将时区设置为 UTC 应用程序会将当前时区的间隔添加到小时。例如,如果当前时区是 GMT + 3 并且 NSDate 的小时是 20:00,则它变为 23:00。 我不知道如何解决这个问题......还有其他几个地方可以设置时区 - 在 NSDateFormatter 中用于输出,在 NSCalendar 中,在 NSTimeZone 中 +setDefaultTimeZone - 可能正在使用一些其中将服务于您的目的 我也在 NSCalendar 设置了时区,但没有解决。无论如何,谢谢。以上是关于iOS 3.1 上的 NSDateComponents setTimeZone NSInvalidArgumentException的主要内容,如果未能解决你的问题,请参考以下文章
Cordova 3.1 在 iOS6 上的 Safari 中打开链接
Facebook iOS SDK 3.1 使用分数(游戏 API)