341 Stimmen

Wie verwende ich NSTimer?

Wie verwende ich eine NSTimer ? Kann mir jemand eine Schritt-für-Schritt-Anleitung geben?

2voto

gjpc Punkte 1408

Die Antworten fehlen zu einer bestimmten Tageszeit, hier ist es die nächste Stunde:

NSCalendarUnit allUnits = NSCalendarUnitYear   | NSCalendarUnitMonth |
                          NSCalendarUnitDay    | NSCalendarUnitHour  |
                          NSCalendarUnitMinute | NSCalendarUnitSecond;

NSCalendar *calendar = [[ NSCalendar alloc]  
                          initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *weekdayComponents = [calendar components: allUnits 
                                                  fromDate: [ NSDate date ] ];

[ weekdayComponents setHour: weekdayComponents.hour + 1 ];
[ weekdayComponents setMinute: 0 ];
[ weekdayComponents setSecond: 0 ];

NSDate *nextTime = [ calendar dateFromComponents: weekdayComponents ];

refreshTimer = [[ NSTimer alloc ] initWithFireDate: nextTime
                                          interval: 0.0
                                            target: self
                                          selector: @selector( doRefresh )
                                          userInfo: nil repeats: NO ];

[[NSRunLoop currentRunLoop] addTimer: refreshTimer forMode: NSDefaultRunLoopMode];

Natürlich können Sie "doRefresh" durch die gewünschte Methode Ihrer Klasse ersetzen

versuchen, das Kalenderobjekt einmal zu erstellen und die allUnits aus Effizienzgründen statisch zu machen.

das Hinzufügen einer Komponente zur Stunde funktioniert problemlos, ein Mitternachtstest ist nicht erforderlich ( l )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X