问题描述
|
这是一个完全荒谬的问题,但是昨天我花了2个小时试图使其正常运行,但是我显然缺少了一些非常基本的东西。
我需要做的是从用户输入日期/时间,然后倒计数90分钟以发出警报。
有人可以发布一个示例计算,您有一个保存用户输入的变量和一个接收该计算结果的新变量吗? (所有操作均在Objective C中完成,可用于iPhone应用程序)谢谢!
解决方法
我认为这应该工作:
NSDate * alarmDate = [NSDate dateWithTimeInterval:5400 sinceDate:userDefinedDate];
NSDate * now = [NSDate date];
NSTimeInterval wait = [now timeIntervalSinceDate:alarmDate];
[self performSelector:@selector(callAlarm) withObject:nil afterDelay:fabs(wait)];
尽管我也同意尼克的观点,但是增加您的工作效率会更高。
,我怀疑您可以执行以下操作:
NSDate *alertDate = [userDate dateByAddingTimeInterval:-5400.0];
,假设您有UIDatePicker
,则目标日期将已经在NSDate
对象中。如果它来自另一个来源,则可能是在NSDate对象中以,4 either的字符串形式或其他方式将其结尾。
从NSDate对象中,您可以相对于某个绝对日期获得NSTimeInterval
。您可以直接在其上进行算术运算的那是C原语类型(实际上是double
,但显然不依赖该代码)。因此,您可以直接减去90分钟。然后NSDate上有各种+ dateWithTimeInterval...
类方法,这些方法可让您从结果中获取日期。