0

UILocalNotificationのドキュメントを読みました。例では、NSDateComponentsを使用し、通知をスケジュールするために週、日、月などを設定しています。私は基本的に、特定の時間に毎日繰り返される目覚まし時計に似た何かをしようとしています。UIPickerViewに時間があり、その時間からオブジェクトのNSDateを作成します。だから私は時間をつかんで、次のように通知をスケジュールしようとします:

    NSDate *date = [dateFormatter dateFromString:s];
    NSCalendar *calender = [NSCalendar currentCalendar];
    NSLog(@"%@", s);
    UILocalNotification *note = [[UILocalNotification alloc] init];
    note.alertAction = alarm.name;
    note.alertBody = alarm.note;
    note.fireDate = date;
    note.timeZone = [[NSCalendar currentCalendar] timeZone];
    note.repeatInterval = NSDayCalendarUnit;
                             note.timeZone = [NSTimeZone systemTimeZone];

    [[UIApplication sharedApplication] scheduleLocalNotification:note];

それをしてもいいですか?または、NSDateComponentsを使用する必要がありますか?私のコードは現在通知を発行していません。この方法で通知を発行することさえ可能かどうか、またはNSDateComponentsを使用する必要があるかどうか疑問に思っていました。

また、NSDateComponentsを使用する必要がある場合、その日のアラームを設定できるように現在の日を取得するにはどうすればよいですか。そこから、repeatIntervalが次の日に有効になると想定しています。

本当にありがとう!

4

1 に答える 1

0

firedateが有効なNSDateである限り、通知が発生します。これは私がAppTimeで使用するコードです

        UILocalNotification *localNotification = [[UILocalNotification alloc] init]];

        localNotification.fireDate = [NSDate date];


        localNotification.timeZone = [NSTimeZone defaultTimeZone];
        localNotification.alertBody = @"some string";
        localNotification.repeatInterval = NSWeekCalendarUnit;
        localNotification.repeatCalendar = [NSCalendar currentCalendar];
        localNotification.soundName = UILocalNotificationDefaultSoundName;

        [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

firedateに渡す日付が有効なNSDateであることを確認してください。使用するタイムゾーンリピートコードが必要かどうかわかりませんか?問題を引き起こしている可能性があります。

于 2012-04-07T18:29:27.173 に答える