私は、1 日に 5 回の祈りの時間を提供するイスラム教の PrayerTimes アプリに取り組んでいます。したがって、今の目標は、特定の祈りの時間に毎日 5 回の通知をユーザーに配信することです。次に、祈りごとに 5 つの通知を作成し、通知ごとに 5 つの発火日を割り当て、通知を配信することができます。
ただし、私の問題は、アプリを実行するか、アプリを再起動するたびに、通知センターに通知が表示されることです。コンソール領域では、古い通知もすべて配信されていることがわかります (application:didReceiveLocalNotification: メソッドを上書きしました)。
率直に言って、私は経験豊富な開発者ではありません。本当にこれを理解できませんでした。コードが非常に長いと思いました。それで、誰かが私を助けて、どうすればこれを行うことができるか教えてもらえますか? :) (私の英語はそれほど上手ではありません。寛容になってください)。お知らせするために他の歌を逃した場合は、教えてください。
これが私のコードです。
編集:viewDidLoadからこのメソッドを呼び出します。
アレイブローで5回取得しました:
NSSArray *timeArray = @[time0,time1,time2,time3,time4];
次のように 5 つの UILocalNotification をスケジュールしました。
if (localNotification0 != nil) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification0];
}
NSDate *date0 = [_timeArray objectAtIndex:0];
NSLog(@"date %@",date0);
localNotification0 = [[UILocalNotification alloc] init];
localNotification0.fireDate = date0;
localNotification0.timeZone =[NSTimeZone defaultTimeZone];
NSLog(@"firedate %@",localNotification0.timeZone);
localNotification0.alertBody = @"Se";
localNotification0.soundName = _adhanName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification0];
if (localNotification1 != nil) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification1];
}
NSDate *date1 = [_timeArray objectAtIndex:1];
localNotification1 = [[UILocalNotification alloc] init];
localNotification1.fireDate = date1;
NSLog(@"firedate %@",localNotification1.fireDate);
localNotification1.timeZone =[NSTimeZone defaultTimeZone];
localNotification1.alertBody = @"Se";
localNotification1.soundName = _adhanName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification1];
[localNotification1 release];
if (localNotification2 != nil) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification2];
}
NSDate *date2 = [_timeArray objectAtIndex:2];
localNotification2 = [[UILocalNotification alloc] init];
localNotification2.fireDate = date2;
localNotification2.timeZone =[NSTimeZone defaultTimeZone];
NSLog(@"firedate %@",localNotification2.fireDate);
localNotification2.alertBody = @"Se";
localNotification2.soundName = _adhanName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification2];
[localNotification2 release];
if (localNotification3 != nil) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification3];
}
NSDate *date3 = [_timeArray objectAtIndex:3];
localNotification3 = [[UILocalNotification alloc] init];
localNotification3.fireDate = date3;
localNotification3.timeZone =[NSTimeZone defaultTimeZone];
NSLog(@"firedate %@",localNotification3.fireDate);
localNotification3.alertBody = @"Se";
localNotification3.soundName = _adhanName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification3];
[localNotification3 release];
if (localNotification4 != nil) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotification4];
}
NSDate *date4 = [_timeArray objectAtIndex:4];
localNotification4 = [[UILocalNotification alloc] init];
localNotification4.fireDate = date4;
localNotification4.timeZone =[NSTimeZone defaultTimeZone];
NSLog(@"firedate %@",localNotification4.fireDate);
localNotification4.alertBody = @"Se";
localNotification4.soundName = _adhanName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification4];
[localNotification4 release];
これを行うための他のより簡単な方法はありますか? 私を助けてください!