0

将应用程序升级到 iOS7,我有以下代码:

NSCalendar *calendar = [[NSCalendar currentCalendar] initWithCalendarIdentifier:NSGregorianCalendar];

我正进入(状态:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“ * -[NSCalendar initWithCalendarIdentifier:]:仅为抽象类定义的方法。定义 -[_NSCopyOnWriteCalendarWrapper initWithCalendarIdentifier:]!'

有任何想法吗?谢谢

4

1 回答 1

1

NSCalendar 的 currentCalendar 方法返回一个完全初始化的 NSCalendar 实例,所以你不需要初始化它。你应该这样做:

NSCalendar *calendar = [NSCalendar currentCalendar];

仅供参考,这在 iOS6 中也是如此;从来没有必要对返回的值调用 init 方法[NSCalendar currentCalendar]

如果你只想创建一个新的公历实例,与 currentCalendar 无关,你可以这样做:

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
于 2013-09-30T19:58:42.077 回答