Ziel C & iOS: läuft ein timer? NSTimer/Threads/NSDate/etc

Ich arbeite auf meine erste iOS-app, und führen Sie in den ersten Haken habe ich nicht in der Lage zu finden eine gute Antwort für.

Problem: ich habe eine benutzerdefinierte UIGestureRecognizer und haben es alle richtig verdrahtet und ich kann code ausführen, der für jede Note in der @selector nach Anerkennung. Dieser wurde fein für die meisten Dinge, aber es ist ein wenig zu viel input für andere.

Mein Ziel: ein timer, Trigger in einem bestimmten Intervall ausgeführt, die Logik, und in der Lage sein zu kündigen dies im moment berührt werden aufgehoben.

Warum Frage ich hier: gibt Es eine Menge Möglichkeiten für die Lösungen, aber keiner hat sich als das beste zu implementieren. Bisher scheint es, wie

  • performSelector (und einige Variationen dieser)
  • NSThread
  • NSTimer
  • NSDate
  • Betrieb Warteschlangen
  • Ich glaube, ich fand einige andere auch...

Aus all der Forschung, in irgendeiner form zu machen, ein thread scheint der Weg zu gehen, aber ich bin ratlos, was am besten für diese situation.

Ein Beispiel einer Implementierung: ein NSPoint genommen ist jede 0.10 Sekunden, und der Abstand zwischen dem vorherigen und dem aktuellen Zeitpunkt genommen wird. [Die Distanz zwischen jedem Punkt war gedeckt, sehr chaotisch Ergebnisse].

Den entsprechenden code:

- (void)viewDidLoad {
 CUIVerticalSwipeHold *vSwipe =
 [[CUIVerticalSwipeHold alloc]
 initWithTarget:self 
 action:@selector(touchHoldMove:)];
 [self.view addGestureRecognizer:vSwipe];
 [vSwipe requireGestureRecognizerToFail:doubleTap];
}

...

- (IBAction)touchHoldMove:(UIGestureRecognizer *)sender {
     if (sender.state == UIGestureRecognizerStateEnded) {

     }

     if (sender.state == UIGestureRecognizerStateBegan) {

     }

     //other stuff to do goes here

}
InformationsquelleAutor solenoid | 2011-12-27
Schreibe einen Kommentar