ios 7上的崩溃[NSCalendar calendarWithIdentifier:]

ios 7上的崩溃[NSCalendar calendarWithIdentifier:],ios,objective-c,Ios,Objective C,我的应用程序在iOS 7上运行时崩溃了 ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[NSCalendar calendarWithIdentifier:::发送到类0x3b67718c的选择器无法识别” 我正在我的项目中使用代码 - (instancetype)initWithLocale:(NSLocale *)locale andFirstWeekday:(NSUInteger)firstWeekday{ if (self

我的应用程序在iOS 7上运行时崩溃了

***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[NSCalendar calendarWithIdentifier:::发送到类0x3b67718c的选择器无法识别”

我正在我的项目中使用代码

- (instancetype)initWithLocale:(NSLocale *)locale andFirstWeekday:(NSUInteger)firstWeekday{
    if (self = [super init]){
        _calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
        _calendar.timeZone = [NSTimeZone localTimeZone];
        _calendar.locale = locale;
        _calendar.firstWeekday = firstWeekday;
    }
    return self;
}

有人能帮我解决这个问题,帮我节省很多时间。谢谢。

[NSCalendar calendarWithIdentifier]
适用于iOS 8+

您可以改为使用初始值设定项方法,这在所有iOS中都可以正常工作:

_calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];

[NSCalendar calendarWithIdentifier]
适用于iOS 8+

您可以改为使用初始值设定项方法,这在所有iOS中都可以正常工作:

_calendar = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];

使用日历=[[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian]您可能在iOS<8.0中运行此方法在iOS 8中可用。
+calendarWithIdentifier:
在iOS 8.0+中可用,这就是为什么它在iOS 7上崩溃,而
-initWithCalendarIdentifier:
在iOS 2中可用。使用
-initWithCalendarIdentifier:
(使用
alloc
)。使用
\u calendar=[[NSCalendar alloc]initWithCalendarIdentifier:nsCalendarIdentifierRegorian]
您可能在iOS<8.0中运行此方法在iOS 8中可用。
+calendarWithIdentifier:
在iOS 8.0+中可用,这就是为什么它在iOS 7上崩溃,而
-initWithCalendarIdentifier:
在iOS 2中可用。使用
-initWithCalendarIdentifier:
(使用
alloc
)。