我不知道为什么这条非常基本的代码会设置空值。
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)
答案 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方法时,它工作正常。哎呦。