2014-11-18 2 views
0

일관성없는 간격으로 UILocalNotification을 표시하려는 응용 프로그램에서 작업하고 있습니다. 사용자가 월요일에 월요일, 화요일 및 금요일을 선택하면 알림이 표시되고 다음 주에 요일에 알림이 표시됩니다. 사전에 어떤 도움일관성없는 간격에 대한 알림 일정 설정 iOS

감사합니다.

답변

0

당신이해야 할 일은 간격에 대해 불규칙한 기간 동안 복수 UILocalNotification 인스턴스를 예약하는 것입니다. repeatInterval 속성을 사용하여 각각 UILocalNotification을 반복 할 수 있습니다.

예를 들어 월요일, 화요일 및 금요일에 세 개의 UILocalNotification 인스턴스를 예약 한 다음이 인스턴스의 각각 값을 설정할 수 있습니다.

+0

그래서 당신은 단일 Localnotification 인스턴트 –

+0

Yeaaaa와 불가능 한 말하고 있습니다. –

+0

하지만 주를 월 또는 연도로 확장한다면 어떻게 될까요? 그냥 신경 쓰지 마라. 그들의 더 나은 방법을 계속해야합니다. –

0

UILocalNotificationfireDate 속성의 경우 NSDate입니다. UI를 통해 사용자 의견을 기반으로 NSDate 인스턴스를 만들고 사용하지 않는 이유는 무엇입니까?

NSDate 개체를 만들려면 initWithTimeIntervalsSinceNow:을 초 단위로 간단히 호출 할 수 있습니다. 예를 들어, 육일 5 시간 지금부터 시간을 나타내는 NSDate을 만들려면 당신이 (많은 다른 달력 전세계 사용하고있다 기억) 사용자의 특정 달력을해야하는 경우,

NSDate* futureDate = [[NSDate alloc] initWithTimeIntervalSinceNow:6*24*60 + 5*60]; 

또는 또는 시간대를 고려하여 NSCalendarNSTimeZone 클래스도 확인해야합니다. 'Date and Time Programming Guide'은 이것들을 잘 보여줍니다.

+0

에서 호출합니다. –

+0

나는 당신에게 대답을 읽어 주지만 나는 그것이 내가 원하는 것을 생각하지 않는다. 내가 다시 설명하게 해줘. 알림을 반복하고 싶습니다. 사용자가 일주일 중 어떤 날부터 선택했는지 알려주고 싶습니다. 그리고 알림이 반복해서 나타납니다.하지만이 객체를 지나면 로컬 알림에 한 번만 알림이 표시됩니다. –

+0

제게 다른 접근법을 생각해 볼 수 있다면 제게 감사 할 것입니다. –

0

AppDelegate.m 넣어 당신이 그것을에 위치 정보 등 같은 종류와있는 NSDate 객체를 생성 좀 도와주십시오 수 enterbackground 및 단자 법

-(void)localNotification{ 
    UILocalNotification *scheduledAlert; 

    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
    scheduledAlert = [[[UILocalNotification alloc] init] autorelease]; 
    NSDate *date = [NSDate date]; 
    NSLog(@"%@",date); 
    scheduledAlert.fireDate = [NSDate dateWithTimeIntervalSinceNow:86400]; 
    scheduledAlert.timeZone = [NSTimeZone defaultTimeZone]; 
    scheduledAlert.repeatInterval = NSDayCalendarUnit; 
    NSArray *arr =[[NSArray alloc]initWithObjects:@"Your Notification 1",@"Your Notification 2",@"Your Notification 3",nil]; 
    int jk = arc4random()%arr.count; 
    scheduledAlert.alertBody = [arr objectAtIndex:jk]; 

    [[UIApplication sharedApplication] scheduleLocalNotification:scheduledAlert]; 

}