【问题标题】:Not able to fire NSLocalNotification at specific time无法在特定时间触发 NSLocalNotification
【发布时间】:2013-08-09 10:34:47
【问题描述】:

我是 iOS 开发的新手。

我在我的应用程序中只使用简单的UILocalNotification。我从UIDatePicker 得到开火日期,其中有

self.datePicker.datePickerMode = UIDatePickerModeTime

当我通过UIDatePicker 设置时间时,我想根据UIDatePicker 时间触发日期

我得到的是

NSLog(@"%@", self.datePicker.date);

控制台: 2013-08-09 10:28:30 +0000 --------> (我弄错了时间。)

所以,我将这次转换为 NSString by NSDateFormatter

NSDateFormatter *dateFormator = [[NSDateFormatter alloc] init];
[dateFormator setDateFormat:@"h:mm a"];
NSLog(@"%@", [dateFormator stringFromDate:self.datePicker.date]);

控制台: 下午 3:58 -------> (我的时间到了)

但是在NSLocalNotificationfireDate 属性中,我需要将其值应用为NSDate, 所以我再次将 NSString (我得到了正确的时间) 转换为 NSDate

NSDate *fireDate = [[NSDate alloc] init];
fireDate = [dateFormator dateFromString:[dateFormator stringFromDate:self.datePicker.date]];

控制台: 2000-01-01 10:28:00 +0000 -------> (我弄错了时间。)

这里的问题是我如何通过
UIDatePicker(还有 am/pm) 在 NSLocalNotification 中设置适当的时间?

我只需要触发我在第二个控制台中得到的适当时间(如NSString

请帮我解决这个问题。

【问题讨论】:

    标签: iphone ios objective-c cocoa-touch notifications


    【解决方案1】:

    您对数据中的内容以及控制台上显示的内容感到困惑。具体来说,在您的第二条日志消息中,您需要再次对其进行格式化。

    看来日期还可以。所以只需按预期使用它。如果您希望它在 NSLog 语句中看起来正确,则必须对其进行格式化(您知道该怎么做)。无需转换,只需数据格式即可正确显示。

    【讨论】:

    • 我只想将日期作为 控制台 : 3:58 PM -------> (这里我有适当的时间)
    • @RanjuPatel 以上不是可以理解的英文句子。
    • 如何将 3:58 PM 转换为适当的时间?所以,我可以发出通知。 (带有 notification.fireDate )?
    • 你不需要转换它。使用日期选择器中的正确时间。我可以向您展示如何将字符串转换为日期 - 但时间没有日期 - 您还需要添加日期部分。
    • 谢谢先生,它是我的工作,所以愚蠢的问题是这样的:(请更新你的答案,将来可能对其他开发人员有帮助。
    猜你喜欢
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多