iPhoneアプリ開発初心者です。現在、iPhone用のアラームアプリを開発中です。このアプリケーションでは、UIDataPicker からデータを選択しています。次に、アラームボタンアクションで NSLocalNotification firedate に適用しました。初めて稼働しています。次に、もう一度そのボタンをクリックすると、再び機能しますが、時間も同じです。それは間違って働いています。
ここで、NSTimer が必要だと思います。NSTimerの使い方がわかりません。また、このタイマーの設定方法もバックグラウンドアプリケーションで動作しています。
アラーム通知用に開発されたコードは次のとおりです。
- (void) saveButtonAction:(id)sender {
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Class cls = NSClassFromString(@"UILocalNotification");
if (cls != nil)
{
Resource *resourceLoader = [[Resource alloc] init];
NSDictionary *prefDic = [resourceLoader getPlistDataAsDictionary:@"preference"];
NSString *musicName;
NSDate *selectedDateTime = [[NSDate alloc]init];
if (prefDic && [prefDic objectForKey:@"alarmtime"]) {
//firstVal_textField.text = [prefDic objectForKey:@"value1"];
NSLog(@"saravanan %@",[prefDic objectForKey:@"alarmtime"]);
selectedDateTime = [prefDic objectForKey:@"alarmtime"];
NSLog(@"saravanan periyasamy %@", selectedDateTime);
musicName = [NSString stringWithFormat:@"%@%@",[prefDic objectForKey:@"alarmmusic"],@".wav" ];
}
UILocalNotification *notif = [[cls alloc] init];
//notif.fireDate = [datePicker date];
notif.fireDate = selectedDateTime;
notif.timeZone = [NSTimeZone defaultTimeZone];
notif.alertBody = @"Alarm";
notif.alertAction = @"Show me";
//notif.repeatInterval = 0;
//notif.soundName = UILocalNotificationDefaultSoundName;
notif.soundName = musicName;
notif.applicationIconBadgeNumber = 1;
NSDictionary *userDict = [NSDictionary dictionaryWithObject:@"saravanan"
forKey:kRemindMeNotificationDataKey];
notif.userInfo = userDict;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
[notif release];
}
}
}