我正在尝试编写我的第一个 iPhone 应用程序,并且我正在使用一个日期选择器对象让用户输入他们的出生日期。我的应用程序的一部分需要 int 格式的年份。我已经添加了如下代码。奇怪的是 'month' 得到了正确的值。但是日期和年份似乎都停留在 MAX_INT (2147483647)。谁能告诉我我做错了什么?
-(IBAction)dateOfBirthChanged:(id)sender {
NSCalendar* calender = [NSCalendar currentCalendar];
NSDateComponents* dateComponents = [calender components:NSMonthCalendarUnit fromDate:[datepicker date]];
NSInteger day = [dateComponents day];
NSInteger month = [dateComponents month];
NSInteger year = [dateComponents year];
label.text = [NSString stringWithFormat:@"Your year of birth is %d", year];
}
最佳答案
试试这个:
NSDateComponents *dateComponents = [calender components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[datepicker date]];
引用:-components:fromDate: