应用程序中的本地通知

时间:2016-02-16 14:29:30

标签: ios timezone uilocalnotification

我遇到了这个奇怪的问题。我正在制作一个报警应用程序。当我发出本地通知时,它在模拟器中工作正常,但是当我在iPhone中编译代码时,它不能正常工作。。代码正在模拟器上工作,而不是在iPhone上响应。
 通知代码:

-(void) scheduleLocalNotificationWithDate:(NSDate *)fireDate
{

 UILocalNotification *localNotif = [[UILocalNotification alloc] init];

 localNotif.fireDate = fireDate;
 localNotif.alertBody = @"Time to wake Up";
 localNotif.alertAction = @"Show me";
 localNotif.soundName = @"Tick-tock-sound.mp3";
 localNotif.applicationIconBadgeNumber = 1;
 localNotif.repeatInterval = NSCalendarUnitWeekOfYear;


 [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];


}

并保存按钮代码为:

- (IBAction)saveBtn:(id)sender {


    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.timeZone = [NSTimeZone localTimeZone];

    NSLog(@"time is %@",dateFormatter.timeZone);
    dateFormatter.timeStyle = NSDateFormatterShortStyle;
    NSString * dateTimeString = [dateFormatter stringFromDate:timePicker.date];
    datesArray = @[[dateFormatter stringFromDate:self.timePicker.date]];
}

请告诉我解决方案。感谢

1 个答案:

答案 0 :(得分:0)

将此代码写在appdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    


 if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
            UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
                                                            UIUserNotificationTypeBadge |
                                                            UIUserNotificationTypeSound);
            UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
                                                                                     categories:nil];
            [application registerUserNotificationSettings:settings];
            [application registerForRemoteNotifications];
        } else {
            // Register for Push Notifications before iOS 8
            [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                             UIRemoteNotificationTypeAlert |
                                                             UIRemoteNotificationTypeSound)];
        }
return Yes;
}