您好,我正面臨一個奇怪的問題。其實我想在上午8:00安排每日通知(每天只有一次)。以下是我的計劃每日通知的代碼。每日UILocalNotification不止一次發射
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSDate *date = [[NSDate alloc] init];
date = [formatter dateFromString:@"08:00"];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = date;
localNotification.timeZone=[NSTimeZone defaultTimeZone];
localNotification.alertBody = @"You just received a local notification";
localNotification.alertAction = @"View Details";
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.repeatInterval = NSDayCalendarUnit;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
[formatter release];
[date release];
我的問題是,我收到2個本地通知。一個在上午8:00,另一個在上午10:00。爲什麼我在上午10點收到通知。我只在上午8:00安排它。我知道UILocalNotification庫在大多數蘋果設備上都有一些其他奇怪的問題/錯誤。我只想確認在我的代碼中是否存在一些錯誤,或者它是UILocalNotification庫的奇怪行爲。我不知道蘋果爲什麼不解決許多開發者關於UILocalNotification報道的問題。
注:我使用的Xcode 4.6和iOS 6.1
:在您的日期添加上午/下午。那是你的問題。 [formatter setDateFormat:@「HH:mm a」];設置你的日期格式,如 – TamilKing
嘗試'[[UIApplication sharedApplication] cancelAllLocalNotifications];'在你安排本地通知之前。而且,從內存管理的角度來看,你的代碼並不好。改變你的'NSDate * date = [[NSDate alloc] init]; date = [formatter dateFromString:@「08:00」];'將行與'NSDate * date = [formatter dateFromString:@「08:00」];',並移除'[date release]',並且也不要忘記在安排它後釋放你本地的通知對象。希望這可以幫助! –