Frage

Ich bin mit dem folgenden Code einen Selektor auszuführen, nachdem eine Verzögerung mit mehreren Parametern übergeben:

http://nifty-box.com/blog /2006/12/nsinvocation-cleans-code.html

Es funktioniert sehr gut, aber ich brauche diese zu erweitern die äquivalent zu unterstützen:

[NSObject cancelPreviousPerformRequestsWithTarget: self]

(Ziel in diesem Fall wäre nicht selbst, sondern eine Instanz von _UFLatePerformer sein glaube ich)

Gibt es eine Möglichkeit, dies zu tun, so Deallokation meine Ansicht der kann alle verbleibenden verzögerten Leistungsanforderungen töten?

War es hilfreich?

Lösung

Auf dem Mac würden Sie in der Lage sein objc_setAssociatedObject zu verwenden, aber das auf dem iPhone nicht vorhanden ist.

Also im Grunde müssen Sie irgendeine Art von Manager Singletons, die für Sie auf diese Referenzen halten, dass Sie in einem NSObject passieren und es tut, was Sie wollen.

Wenn ich etwas zu tun, war ähnlich ich eine Singletonklasse schrieb, die in Anfragen nahmen eine Aktion auszuführen, und begann einen Timer, der ausgelöst, wenn die Aktion getan werden sollte - zu dieser Zeit meine Managerklasse entschieden, ob die Anforderung in Frage war, nach wie vor gültig, und wenn gebrannt, um die Aktion. Ich könnte so effektiv einen Timer beenden, und weiterhin den Manager sagen könnte den Timer zurückgesetzt werden, die nicht wirklich, es ist nur einen neuen Timer gemacht, aber wenn der alte Timer die Aktion gefeuert wurde beantragt auszuführen war ungültig.

Also im Grunde der Timer wurde die Singleton wieder mit nur einem Anfrage-ID aufrufen, die zu einem Wörterbucheintrag führte Details des Anrufs enthält.

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