3

uilocalnotificationアプリに実装したい。しかし問題は、それが正確な時間に発砲していないことです。所定の発砲時間から30〜40秒後に発砲します。私が見逃しているものがありますか、これはで一般的な考えですUILocalNotification

ありがとう

4

3 に答える 3

9

UILocalNotification は、遠い将来に起こることのために設計されているため、30 秒のエラーは問題ありません (つまり、15:00 に会議があった場合、15:00:30 に通知しても問題ありません :)

それ以上の精度が必要な場合は、アプリを実行し続け、NSTimer を使用する必要があります。

于 2011-02-21T10:28:20.313 に答える
3

これは古い質問であることは知っていますが、これを理解したところです dateByAddingTimeInterval :。メソッドを使用できます。

notif.fireDate = [[datePicker date] dateByAddingTimeInterval:-30];
于 2011-03-28T10:08:15.733 に答える
1

fireDateを使用して設定NSDateComponentsできます。ここで、firedate の秒数を設定できます。0にすると動きませんが、1秒にすると動きます。30~40秒に比べて1秒遅くてもOKです。

NSCalendar *cal = [NSCalendar currentCalendar];
    NSDateComponents *dateComps = [cal components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay |NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond   fromDate:fireDate];
    [dateComps setSecond:1];
    [dateComps setNanosecond:00];
    NSDate *newDate = [cal dateFromComponents:dateComps];
    fireDate = newDate;
于 2017-01-12T11:40:25.137 に答える