Frage

ich eine Aktion haben, die beginnt, wenn der Benutzer auf eine Schaltfläche auf dem Bildschirm tippt (z „Import“). Zur gleichen Zeit erscheint ein UIToolbar am unteren Rand des Bildschirms, die dem Benutzer die Möglichkeit gibt, diese Aktion abzubrechen. Wie kann ich richtig eine Meldung an die ursprüngliche Funktion abzubrechen senden? Wenn der Benutzer Hits „Abbrechen“ Ich will nicht, dass die „Import“, um fortzufahren. Theoretisch könnte ich es als separaten Thread eingerichtet (was ich dann töten könnte), aber ich bin nicht sicher, was der richtige Weg ist, dies so zu tun, dass es nach mir selbst reinigen kann. Was sind einige andere Strategien zu „töten“, die eine Funktion der Lage sein, der Benutzer bereits begonnen hat?

War es hilfreich?

Lösung

Erstellen

einen separaten Betrieb mit so etwas wie:

NSOperationQueue* queue = [[[NSOperationQueue alloc] init] autorelease];
[queue addOperation: [[[NSInvocationOperation alloc] initWithTarget: self 
      selector: @selector(_backgroundWorker) 
      object: nil] autorelease]];

Auf diese Weise _backgroundWorker wird, ohne zu stoppen Haupt-UI-Thread ausgeführt werden.

Eine Abbrechen-Taste gedrückt wird, setzen einige interne Variable und prüfen Sie seinen Wert innerhalb _backgroundWorker.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top