Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>NSTimer

NSTimer

neo07.02.0512:27
Hallo *,

Ich versuche mich grade an einem Kleinen Interaktiven Cocoa Programm, das soll alle 2 Sekunden eine Nachricht auf die Konsole Schreiben (NSLog). Das ganze will ich mit NSTimer machen aber ich verstehe den Aufbau der Klasse nicht ganz. Wie kann ich denn eine Methode festlegen welche ausgeführt werden soll wenn der Timer feuert?

Hat jemand eine Anregende Idee?

Gruss Sven

PS: Aus der Apple Dev. Hilfe werde ich nicht Schlau.
0

Kommentare

dtlmtn07.02.0513:29
NSTimer ist relativ einfach, schau dir folgendes Beispiel an. In startTimer wird ein neuer NSTimer gestartet und in der Variablen "previewTimer" gespeichert. Der Timer ruft die Methode "doThisAndThat:" auf, in der du deine Nachricht ausgeben kannst. Hier (bzw. überall im Code) kannst du den Timer mit "invalidate" beenden. Dies musst du auch machen wenn das entsprechende Window geschlossen wird oder die App beendet, sonst ruft der Time evtl. freigegebene Objekte auf. Macht Sinn?

// instance variable in .h file
NSTimer *previewTimer;

// code in .m file

// method called by timer
- (void)doThisAndThat:(NSTimer *)theTimer
{
// do this and that here...

// end timer if needed, replace if(...) with your code
if( timerShouldEnd ) {
[theTimer invalidate];
theTimer = NULL;
}
}

// start timer
- (void)startTimer
{
// stop old preview timer, if any
if(previewTimer) [previewTimer invalidate];
previewTimer = NULL;

// start new preview timer
previewTimer = [NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(doThisAndThat:)
userInfo:NULL
repeats:YES];
}
0
dtlmtn07.02.0513:30
ops, die Smileys sollten ein ": (" sein...
0
dtlmtn07.02.0513:32
Frage an die MTN Redaktion: Wie wäre es mit einem Button um die automatischen Smileys abzuschalten? Nervt etwas beim Code einfügen... sonst Klasse.
0
neo08.02.0523:07
Super habe es hin bekommen.

ich hatte es mit dem Selector nicht Verstanden gehabt, irgend wie muss ich das Überlesen haben das dort die Methode rein muss die Aufgerufen wird.

Gruss Sven
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.