我该如何将UIDatePicker的日期设置为另一个日期?

7

我尝试了多种方法,包括:

[timepicker setDate: [NSDate mondayalarmtime]];

并且

timepicker.date = mondayalarmtime;

每次执行时,这行代码都会导致模拟器崩溃。我的mondayalarmtime在viewDidLoad中定义如下:
 NSDateFormatter *inputFormat = [[NSDateFormatter alloc] init];
 [inputFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
 NSDate *inputDate = [inputFormat dateFromString: @"2011-01-01 09:00:00"];

 NSLog (@"The input date %@", inputDate);

 NSDate *mondayalarmtime = inputDate;

NSLog返回:

The input date 2011-01-01 09:00:00 +0000

在尝试将时间选择器设置为mondayalarmtime之前,放置一个要求mondayalarmtime的NSLog会返回相同的结果。

Mondays alarm time.. 2011-01-01 09:00:35 +0000

然后当它试图将时间选择器的日期设置为mondayalarmtime时,它会崩溃并报告以下错误:

Program received signal:  “EXC_BAD_ACCESS”.

1
听起来像是一个经典的内存管理问题。我们需要看更多的代码。 - Dave DeLong
  1. 你是否正在使用ARC?
  2. 如果mondayalarmtime是一个ivar,为什么要在viewDidLoad中进行本地声明?
  3. 你的日志中35秒的差异是打字错误还是实际看到的?
- jrturton
抱歉,我被日期搞混了(多么讽刺),我以为这是一个新问题!一月病。 - jrturton
1个回答

6

您正在向NSDate发送mondayalarmtime消息。NSDate无法理解此消息。

尝试设置mondayalarmtime属性并调用getter方法。

[timepicker setDate:[self mondayalarmtime]];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接