如何在三天后开始进行uilocalnotification?

时间:2015-04-18 06:21:43

标签: ios objective-c cocoa-touch

我目前正在开发一个iPhone项目。 我想从现在开始三天之后发出本地通知。

任何人都可以帮我实现这个目标吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

只是从这里的其他答案更新。

60 * 60 * 24不是一天,不应该用来表示一天。

如果您想在三天内完成日期,那么您可以使用NSCalendar ...

NSDate *now = [NSDate date];

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *components = [NSDateComponents new];
components.day = 3;

NSDate *threeDaysTime = [calendar dateByAddingComponents:components toDate:now options:0];

这是如何计算三天的时间。使用60 * 60 * 24是不正确的。

答案 1 :(得分:0)

您可以随时安排,从当前时间开始,

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(60*60*24*3)]; //60 seconds* 60 minutes * 24 hours * 3 days
localNotification.alertBody = [NSString stringWithFormat:@"Set your message",locations];
localNotification.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

更新1

有关用户通知的权限,您必须在App Delegate中设置,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)])    {
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
    }
    return YES;
}

HTH,享受编码!!