UIDatePicker setMinimumDate和setMaximumDate设置为null

时间:2011-09-09 16:22:05

标签: iphone ios nsdate uidatepicker

我不知道为什么这条非常基本的代码会设置空值。

NSDate *currentTime = [NSDate date];
[datePicker setMinimumDate:currentTime];
[datePicker setMaximumDate:[currentTime dateByAddingTimeInterval:kSecondsInYear]];
NSLog(@"cur: %@, min: %@, max: %@",currentTime,datePicker.minimumDate,datePicker.maximumDate);

输出:cur:2011-09-09 16:18:18 GMT,min:(null),max:(null)

2 个答案:

答案 0 :(得分:5)

鉴于以下工作正常,问题肯定在于datePicker。

UIDatePicker* datePicker = [[UIDatePicker alloc] init];
NSLog(@"DatePicker: %@", datePicker);
NSDate *currentTime = [NSDate date];
[datePicker setMinimumDate:currentTime];
[datePicker setMaximumDate:[currentTime dateByAddingTimeInterval:40000]];
NSLog(@"cur: %@, min: %@, max: %@",currentTime,datePicker.minimumDate,datePicker.maximumDate);

如果您在代码段中添加NSLog(@"DatePicker: %@", datePicker);,则应该报告类似的内容:DatePicker: <UIDatePicker: 0x4b36740; frame = (0 0; 320 216); layer = <CALayer: 0x4b33940>>。如果它返回(null)(我非常强烈怀疑),那么它不是以编程方式创建的,也不是在Interface Builder中连接的。

答案 1 :(得分:2)

发现问题,我在initwithnib方法中设置了最小/最大日期。当我将其更改为viewDidLoad方法时,它工作正常。哎呦。