みんな、私はこれを機能させるために先週文字通り試みてきました。
ローカル通知を有効にするために UISwitch が必要なアプリがあります。
スイッチの状態の標準はオフですが、ロード時にアラームがオンのときにこれを変更する必要があります。私はscheduledLocalNotificationを試しました.BOOLを試しました.int isOnをオンのときは1に、オフのときは0に設定しようとしましたが、何もうまくいかないようです.
私が使用する if ループは ViewDidLoad にあり、次のようになります。
if (isAlarmOn == 1) {
NSLog(@"You have notifications");
[setAlarm setOn:YES];
}
else{
NSLog(@"You have no notifications");
[setAlarm setOn:NO];
}
どの戦略を使用しようとしても、うまくいかないようです。皆さんから助けを得られることを願っています。
いくつかのコード:
私のsetAlarmのコード
- (IBAction)setAlarm:(id)sender {
NSArray *notificationArray=[[UIApplication sharedApplication] scheduledLocalNotifications];
if (setAlarm.on) {
[alarmStatus setText:@"Alarmen er tændt"];
//Metode til at undersøge om klokken før eller efter officiel solned
NSTimeInterval checkTime = [[astronomicalCalendar sunset] timeIntervalSinceDate:[NSDate date]];
NSLog(@"Alarmen er tændt");
if (checkTime >= 0) {
[self scheduleNotificationToday];
}
else{
[self scheduleNotificationTomorrow];
}
NSLog(@"antal alamer %@", notificationArray);
isAlarmOn = 1;
}
else {
//Metode til at slette alle notifikationer
[[UIApplication sharedApplication] cancelAllLocalNotifications];
NSLog(@"Alarmen er slukket");
NSLog(@"antal alamer %@", notificationArray);
isAlarmOn = 0;
}
}
私の UILocalNotification コード
- (void)scheduleNotificationToday {
Class cls = NSClassFromString(@"UILocalNotification");
if (cls != nil) {
//Just some stuff determine which time to alert on.
UILocalNotification *notif = [[cls
alloc] init];
notif.fireDate = [gregorian dateByAddingComponents:traekFraDag toDate:[astronomicalCalendar sunset] options:0];
notif.timeZone = [NSTimeZone defaultTimeZone];
notif.alertBody = @"Nu går solen snart ned";
notif.alertAction = @"Show me";
notif.soundName = @"Waterline.caf";
notif.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
}
}
見たいコードの他の部分があれば教えてください