我试图从一个月、一天和一年(都是整数格式)生成一个NSDate.

现在我的try 是这样的:

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];

然而,当日=24,月=8,年=2011时,_date个输出如下:

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

我一定是做错了什么,但我不知道是什么.有人知道会发生什么吗?

推荐答案

你的代码有输入错误:(最后一行应该是setYear:)

 [components setDay:[day intValue]];
 [components setMonth:[month intValue]];
 [components setYear:[year intValue]];

Objective-c相关问答推荐

Objective-C:为什么[对象复制]的两个请求返回相同的结果?

iOS中的非延迟图像加载

isEqualTo: 和 isEqual 之间的区别:

Objective-C:集合枚举块中的 continue继续?

.m 文件中的空@interface 声明是做什么用的?

使用正则表达式在 Xcode 中查找/替换

声音在 iPhone 模拟器中不起作用?

Objective-C 中的 alloc、init 和 new

关闭一次后如何返回允许推送通知对话框?

在 Objective-C 中,你在哪里声明一个常量?

Objective-C 的 NSMutableArray 是线程安全的吗?

两个 NSDate 对象之间的区别 - 结果也是一个 NSDate

UIScrollView - 显示滚动条

协议和代表之间的区别?

为什么 detailTextLabel 不可见?

iOS 10 中的错误:无法从 https://mesu.apple.com/assets/ 复制assets资源信息以获取assets资源类型

有没有办法在不使用 UINavigationController 的情况下更改 Storyboard 中 UINavigationBar 的高度?

字符串常量和字符串文字有什么区别?

如何阻止 NSNotification 中的观察者调用两次?

公开只读但具有私有设置器的 Objective-C 属性