我已经在我的项目上实现了UILocalNotification成功,我从NSDictionary随机化字符串失败了,我需要每隔5分钟发送一次全世界。在每5分钟,我需要在UILocalNotification中传递随机字符串。
这是我的示例代码:
NSArray *word1Array= [_tmp objectForKey:@"word1"];
NSArray *word2Array = [_tmp objectForKey:@"word2"];
if([word1Array count] > 0)
{
int minCount = 0;
int totalcount = (int)[word1Array count];
int randomIndex = (arc4random()%(totalcount-minCount))+minCount;
NSString *word1 = [word1Array objectAtIndex:randomIndex];
NSString *word2 = [word2Array objectAtIndex:randomIndex];
NSString *wordbody = [NSString stringWithFormat:@"%@ - %@",word1,word2];
UILocalNotification *reminderNote = [[UILocalNotification alloc]init];
reminderNote.repeatInterval = NSMinuteCalendarUnit;
reminderNote.alertBody = wordbody;
reminderNote.alertAction = @"Bak";
reminderNote.soundName = @"sound.aif";
reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 5];
reminderNote.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:reminderNote];
}
此代码开始发送带有随机字符串的通知,但每隔5分钟,它同时传递4-5个字,这真的很烦人。我如何修复它,每5分钟发送1个字符串?
答案 0 :(得分:1)
如果我理解你的问题,你会在第5分钟获得N次相同的字符串。这是因为您同时安排本地通知。
您应该将上述代码放入以下内容: -
for(int i=1;i<=5 ;i++){
//Your other code
reminderNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:60 * 5 * i];
//Your other code
}
上述代码将安排本地通知5次,它将在当前时间的第5,10,15,20,25分钟通知用户。
更新答案: -
设备上的每个应用程序仅限于64个本地计划 通知。系统会丢弃超出预定的通知 此限制,仅保留将触发的64个通知 最快。重复通知被视为单个通知。