3

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

例如:

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

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

谢谢。

4

2 回答 2

1

您可以application:didReceiveLocalNotification在 AppDelegate 中实现该方法,并增加一个“日计数器”变量。然后,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];
}

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

于 2013-09-13T18:58:54.173 回答
0

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

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

于 2013-09-13T18:49:05.387 回答