1

バックグラウンド

私は iOS 開発 (および Objective C) の学習の初期段階にあります。フォローした最新のチュートリアルの後、レッスンをもう少し進めることにしました。

チュートリアルの後、LocalNotificationユーザーが設定した時間に起動する目覚まし時計アプリケーションを作成しました。ローカル通知は、アプリがバックグラウンド モードのときにアラーム音を鳴らすだけだったので、あまり目覚まし時計とは思えませんでした。そこで、アプリを開いてフォーカスを合わせている間にアラーム機能を追加することにしました。

今いる場所

目覚まし時計アプリケーションは正常に機能します。アプリが開いている場合、ユーザーはUIAlertViewとアラーム音を受け取ります。

問題

をトリガーするために、メソッドUIAlertViewを使用しています。didReceiveLocalNotification:

didReceiveLocalNotification:ユーザーが設定した時刻とが呼び出される時刻の間には、かなり大きな遅延があります。正確には38秒。

つまらないことかもしれませんが、理由がわからないのは私を殺している. GitHub を検索して他の例を見つけましたが、それらはすべて私と同じパターンに従っているようです。

このような遅延の原因は何ですか? これが通常の動作である場合、遅延をなくすにはどうすればよいですか?

私のコードが役立つかどうか教えてください。事前定義されたメソッドであるためdidReceiveLocalNotification:、呼び出されるタイミングを制御できないため、必要なコードがわかりません。

追加情報

アラーム時刻の設定方法

- (void) scheduleLocalNotificationWithDate: (NSDate *) fireDate
{
    UILocalNotification *backgroundNotification = [[UILocalNotification alloc] init];

    backgroundNotification.fireDate = fireDate;
    backgroundNotification.alertBody = @"Wake Up!";
    backgroundNotification.soundName = @"My_Alarm.mp3";

    [[UIApplication sharedApplication] scheduleLocalNotification: backgroundNotification];
}
4

0 に答える 0