从日,月和年生成NSDate

min*_*pop 41 cocoa cocoa-touch objective-c nsdate ios

我正在尝试从一个月和一年生成一个NSDate(所有都是整数格式).

现在我的尝试是这样的:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
NSNumber *day = [dataSource valueForKey:@"day"];
NSNumber *month = [dataSource valueForKey:@"month"];
NSNumber *year = [dataSource valueForKey:@"year"];
[components setDay:[day intValue]];
[components setMonth:[month intValue]];
[components setMonth:[year intValue]];
NSDate *_date = [calendar dateFromComponents:components];
Run Code Online (Sandbox Code Playgroud)

但是,_date在day = 24,month = 8,year = 2011时输出以下内容:

0168-07-25 04:56:02 +0000

我必须做一些可怕的错误,但我不知道是什么.任何人都知道可能会发生什么?

Chr*_*r A 40

您的代码中有拼写错误:(最后一行应该是setYear:)

 [components setDay:[day intValue]];
 [components setMonth:[month intValue]];
 [components setYear:[year intValue]];
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!绝对需要另一组眼睛(或另一罐咖啡):) (3认同)