1

このアプリケーションは OSX 用です。NSTimer を使用して、1 日の特定の時間にメソッドを実行しています。

    NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit
                                             fromDate:[NSDate date]];
[components setHour:9];
[components setMinute:30];
[components setSecond:0];
NSDate *date = [myCalendar dateFromComponents:components];

NSTimer *t = [[NSTimer alloc] initWithFireDate:date
                                      interval:0.0
                                        target:self
                                      selector:@selector(fired:)
                                      userInfo:nil
                                       repeats:NO];
[[NSRunLoop mainRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];

これを毎日繰り返すにはどうすればよいですか?

4

2 に答える 2

-1

NSTimerあなたが達成したいことには適していません!

代わりに、EKReminderクラス、またはNSUserNotificationOS X 10.8 で導入されたものを見てください。

OS X の以前のバージョンをターゲットにする必要がある場合は、EKCalendar を含む他のオプションを探すか、日付計算を処理する他のサービスを検討してください (IIRC、launchd には時刻の概念があるため、他のいくつかの高い値があるはずです)。その上にレベルの API を追加します)。

「イベント キットのイベントとリマインダー」や、昨年の「国際化のヒントとコツ」の一部など、これらのことを扱った WWDC セッション ビデオがいくつかあります。

于 2013-04-30T12:46:04.390 に答える