UILocalNotification与各种警报体

时间:2013-09-13 18:35:30

标签: ios objective-c uilocalnotification

如何使用各种警报正文重复UILocalNotification?

例如:

UILocalNotification *notif = [[UILocalNotification alloc] init]; 
notif.alertBody = @"Hello";
notif.repeatInterval = NSDayCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];

通过使用此代码,通知将每天重复,我如何每天与不同的警报机构重复通知?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在AppDelegate中实现application:didReceiveLocalNotification方法,并增加'day counter'变量。然后,为通知的警报正文安排一个新的UILocalNotification字符串数组。使用日期计数器获取更新的字符串。这是一些示例代码:

在AppDelegate.h中:

@property (assign, nonatomic) int dayCount;

在你的AppDelegate.m中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    [self scheduleLocalNotification];
    return YES;
}

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
    self.dayCount++;
    [self scheduleLocalNotification];
}

-(void)scheduleLocalNotification{
    NSArray *notifTextArray = [NSArray arrayWithObjects:@"Hello", @"Welcome", @"Hi there", nil];

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

    if(self.dayCount < notifTextArray.count){
        notif.alertBody = [notifTextArray objectAtIndex:self.dayCount];
    }
    else{
        self.dayCount = 0;
        notif.alertBody = [notifTextArray objectAtIndex:self.dayCount];
    }

    notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:86400]; //86400 seconds in a day
    [[UIApplication sharedApplication] scheduleLocalNotification:notif];
}

只是一个选项,但希望它有所帮助。

答案 1 :(得分:0)

安排本地通知后,您也无法更改通知和警报正文的任何​​属性。

您可能必须取消旧通知并重新安排新通知才能实现此目的。