[NSCalendar calendarWithIdentifier:]:无法识别的选择器发送到类0x108db9208`

时间:2014-10-23 15:42:50

标签: ios nscalendar

我有一种方法可以增加日期。虽然它可以在我的iPhone 5c iOS8上运行,但它在模拟器5s iOS7.1中失败

这里的方法:

+ (NSDate *)addYears:(int)years toDate:(NSDate *)datum{
    NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSGregorianCalendar];
    NSDateComponents *components= [[NSDateComponents alloc] init];
    [components setYear:years];
    return [gregorian dateByAddingComponents:components toDate:datum options:0];
}

NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSGregorianCalendar];

中会抛出异常

+[NSCalendar calendarWithIdentifier:]: unrecognized selector sent to class 0x108db9208

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这是EKEventStore的方法,而不是NSCalendar

你想:

NSCalendar *gregarian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

答案 1 :(得分:0)

您必须忽略编译器的一些严重警告。那种方法并不存在。

您可以查看头文件以查找完全符合您要求的init方法。