Ios 在日期选择器时间执行操作

Ios 在日期选择器时间执行操作,ios,datepicker,nsdate,uilocalnotification,Ios,Datepicker,Nsdate,Uilocalnotification,当当前时间等于UIDatePicker中选择的时间时,我需要发送一条文本消息。我该怎么做?你不需要包括代码来发送消息,我已经有了代码。我尝试过使用NSTimer和if-then语句的各种方法,但都没有成功 编辑:自从我写了这个问题后,我找到了一个更好的方法。我只需要设置一个本地通知,当收到时,使用-(void)didRevieveLocalNotification执行我的代码。这就是我所拥有的,希望能帮助任何谷歌用户 NSDate *pickerDate = [self.datePicker d

当当前时间等于UIDatePicker中选择的时间时,我需要发送一条文本消息。我该怎么做?你不需要包括代码来发送消息,我已经有了代码。我尝试过使用NSTimer和if-then语句的各种方法,但都没有成功

编辑:自从我写了这个问题后,我找到了一个更好的方法。我只需要设置一个本地通知,当收到时,使用-(void)didRevieveLocalNotification执行我的代码。这就是我所拥有的,希望能帮助任何谷歌用户

NSDate *pickerDate = [self.datePicker date];
    //Set Local Notification
    UILocalNotification *notif = [[UILocalNotification alloc] init];
    notif.fireDate = pickerDate;
    notif.timeZone = [NSTimeZone defaultTimeZone];
    //----------------------------------------------------------------------
    notif.alertBody = @"Tap to send your text message!";
    notif.alertAction = @"send message...";
    notif.soundName = @"sms_alert_nova.caf";
    notif.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1;
    [[UIApplication sharedApplication] scheduleLocalNotification:notif];

我会使用本地通知。。。像这样的

UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = theDate //The date that your picker has selected

notification.alertBody = @"Hey, the time just expired!"
notification.applicationIconBadgeNumber = 1;

[[UIApplication sharedApplication] scheduleLocalNotification:notif];
然后在你的AppDelegate中

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {

//Code to manage the notification logic


}
希望这有帮助,即使在后台,用户也会收到警报。。如果在后台,用户必须单击警报,让您的应用程序知道本地通知已触发,如果他已触发(或他已在您的应用程序上,则应用程序委派方法将触发,让您的应用程序知道通知已触发


希望这有帮助!

展示您如何尝试使用
NSTimer
,并告诉我们它所做的与您期望的不同。您是否尝试了initWithFireDate:interval:target:selector:userInfo:repeats:NSTimer方法?很遗憾,我已删除了以前使用的所有代码。抱歉,我已经这样做了,但我想执行t一旦用户打开应用程序,他就会自动执行操作。这就是为什么我想检测时间并进行匹配。:)请解释一下?您需要应用程序在计时器达到该值时执行操作???如果是这样的话。。。您仍然可以使用此方法和。。如果应用程序已暂停(关闭),您可以使用didFinishLaunching:with选项来检测它是否已使用通知打开,或者您可以在每次应用程序转到前台时重新检查计时器(以防用户未看到警报)。。。这是你想要的吗?如果不解释,我可以帮助你是的,这就是我需要它做的。我唯一的问题是我尝试了didRecieveLocalNotification,但它对我不起作用。你基本上有两个选择。。。使用通知,以便应用程序可以在内部触发通知并对其进行处理(如果应用程序位于后台,则用户必须按通知)。如果用户未按,则您可以始终使用didBecomeActive或DidBenterForeground上的代码来检测。。。另一方面,你可以通过plist让你的应用程序使用后台处理,这样即使在后台也可以启动NSTimer(你必须向苹果解释这一点,这样他们才能让你的应用程序通过应用商店)。。。如果这是答案。。我将编辑并由您标记:)