将应用程序升级到iOS7,我有以下代码:
NSCalendar *calendar = [[NSCalendar currentCalendar] initWithCalendarIdentifier:NSGregorianCalendar];
我得到了:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' * - [NSCalendar initWithCalendarIdentifier:]:仅为抽象类定义的方法。定义 - [_ NSCopyOnWriteCalendarWrapper initWithCalendarIdentifier:]!'
有什么想法吗?感谢
答案 0 :(得分:1)
NSCalendar的currentCalendar方法返回一个完全初始化的NSCalendar实例,因此您不需要初始化它。你应该这样做:
NSCalendar *calendar = [NSCalendar currentCalendar];
仅供参考,iOS6也是如此;从来没有必要对[NSCalendar currentCalendar]
返回的值调用init方法。
如果您只想创建一个与currentCalendar无关的新Gregorian日历实例,您可以这样做:
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];