2017-01-02 1 views
0

나는 특정 날짜에 알림을 설정해야하는 응용 프로그램을 개발 중입니다. 로컬 통보를 사용하고 현재 선택된 요일의 날짜를 찾습니다.로컬 알림을받지 못하는 이유는 무엇입니까? 목표 C에서 주간 알림을 설정하는 경우

appDelegate에서

NSArray* components12 = [self.LblTime.text componentsSeparatedByString:@":"]; 
    NSString *Hours = [components12 objectAtIndex:0]; 
    NSString *Minutes =[components12 objectAtIndex:1]; 

    NSDate *currentDate = [NSDate date]; 
    NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
    [gregorianCalendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

    NSDateComponents *components = [gregorianCalendar components:(NSYearCalendarUnit| NSMonthCalendarUnit 
                    | NSDayCalendarUnit| NSWeekdayCalendarUnit|NSWeekCalendarUnit) fromDate:currentDate]; 

    NSLog(@"Current week day number %ld",(long)[components weekday]); 
    NSLog(@"Current week number %ld",(long)[components week]); 
    NSLog(@"Current month's day %ld",(long)[components day]); 
    NSLog(@"Current month %ld",(long)[components month]); 
    NSLog(@"Current year %ld",(long)[components year]); 

    NSDateComponents *dt=[[NSDateComponents alloc]init]; 
    //Passing the Time (hours and minutes) and Selected day with date 
    [dt setHour: [Hours integerValue]]; 
    [dt setMinute:[Minutes integerValue]]; 
    [dt setSecond:0]; 
    [dt setWeek:[components week]]; 
    [dt setWeekday:selecteddayValue];/// set the week Selected ay from picker 
    [dt setMonth:[components month]]; 
    [dt setYear:[components year]]; 
    NSDate *Date=[gregorianCalendar dateFromComponents:dt];// get the date of selected day of week 
    NSLog(@"Sunday date :%@",Date); 

    //Adding the reminder through Local notifiction 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
    UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
    localNotification.fireDate =Date; 
    localNotification.alertBody = @"Ready For Next Workout!"; 
    localNotification.soundName = UILocalNotificationDefaultSoundName; 
    // localNotification.applicationIconBadgeNumber = 1; // increment 
    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"Object 1", @"Key 1", @"Object 2", @"Key 2", nil]; 
    localNotification.userInfo = infoDict; 
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 
    [self showAlert:@"Reminder set Successfully"]; 

viewController.m에서 :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]; 
} 
// Handle launching from a notification 
UILocalNotification *locationNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 
if (locationNotification) { 
    // Set icon badge number to zero 
    application.applicationIconBadgeNumber = 0; 
} 

return YES; 
} 
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{ 
// Set icon badge number to zero 
    application.applicationIconBadgeNumber = 0; 
} 

지금 내가 알림을받을 수없는

이 내 코드입니다. 누구든지이 일을 도와주세요. 아주 유능 할 것입니다.

+1

우선 iOS10에서는 UILocalNotification이 사용되지 않습니다. UNUserNotificationCenter를 대신 사용하십시오. 이 링크는 http://stackoverflow.com/questions/37938771/uilocalnotification-is-deprecated-in-ios10에 도움이됩니다. – miOS

답변

0
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) 
{ 
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil]; 
    [application registerUserNotificationSettings:settings]; 
} 
관련 문제