Dies ist eine Frage, die bereits in SO beantwortet wird, aber Ich kann es nirgendwo in der Apple-Dokumentation finden. Könnten Sie mir in die richtige Richtung zeigen?performSelector: withObject: und sein Retain-Verhalten
In den folgenden Themen
Do I have to retain an object before passing it to -performSelector:withObject:afterDelay:?
the effect on retain count of performSelector:withObject:afterDelay:inModes
Is object that calls performSelector:withObject:afterDelay get retained by the NSRunLoop?
das Standardverhalten scheint, die folgenden zu sein: behält er den Hörer ab und das Argument (e).
Ich verwende den folgenden Code
[[self delegate] performSelector:@selector(tryToSendStoreData:) withObject:userData];
wo userData
ein Autoreleased oject ist.
Protokollierung der Retain-Anzahl (Ich weiß, dass es nicht gültig sein könnte, es zu tun) die Daten übergeben inkrementiert seine Retain-Anzahl. Wenn die Methode für den Delegaten aufgerufen wird, ist die Retain-Anzahl ungleich eins.
Also meine Frage ist: muss ich etwas Speicherverwaltung durchführen, um Lecks zu vermeiden, oder muss ich auf Apple-Sachen vertrauen? Hier spreche ich als Agnostiker, da ich nicht die richtigen Dokumente finden kann.
Vielen Dank im Voraus.
Ich glaube, dass beibehalten zählen nicht mehr genau unter ARC ist – Dustin
@Cake Ich verwende ARC in diesem Projekt nicht. Vielen Dank. –
Für ARC-fähigen Projekt können Sie schauen - http://StackOverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selectors-is-unknown – rishi