【问题标题】:How do i set UIDatePicker's date to another date?如何将 UIDatePicker 日期设置为另一个日期?
【发布时间】:2011-01-03 15:06:36
【问题描述】:

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

[timepicker setDate: [NSDate mondayalarmtime]];

和

timepicker.date = mondayalarmtime;

每次,这条线都会使模拟器崩溃。我的 mondayalarmtime 在 vi​​ewDidLoad 中定义:

 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

在尝试将 imepicker 设置为 mondayalarmtime 之前放置一个 NSLog 请求 mondayalarmtime 会返回相同的结果..

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

然后当它尝试将时间选择器日期设置为 mondayalarmtime 时,它​​会因报告而崩溃:

Program received signal:  “EXC_BAD_ACCESS”.

【问题讨论】:

  • 听起来像是典型的内存管理不善问题。我们需要查看更多代码。
  • 1) 您是否使用 ARC,2) 如果它是 ivar,为什么要在 viewDidLoad 中本地声明 mondayalarmtime,3) 您的日志中的 35 秒差异是错字还是您实际看到的?
  • 对不起,被日期弄糊涂了(多么讽刺)我以为这是一个新问题!一月病。

标签: iphone cocoa-touch nsdate uidatepicker


【解决方案1】:

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

尝试使用 mondayalarmtime 设置属性并调用 getter

[timepicker setDate:[self mondayalarmtime]];

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2023-04-03
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多