iphone - performSelectorOnMainThread mit Rückgabewert

8

Ich habe die folgende Methode:

%Vor%

Und ich wollte wissen, ob es eine Möglichkeit gibt, diese Methode mit performSelectorOnMainThread aufzurufen, damit ich den Rückgabewert erhalten kann. Bisher habe ich es mit:

probiert %Vor%

aber es funktioniert nicht, da performSelectorOnMainThread void zurückgibt. Wie könnte ich das lösen?

    
The WebMacheter 27.07.2010, 17:14
quelle

4 Antworten

12

Willkommen in einer Multithread-Umgebung, mein Freund.

Sie müssen den Rückgabewert in einer Instanzvariablen speichern oder ein Objekt als Referenz über den Parameter withObject übergeben:

%Vor%

Ihr Methodenprototyp sollte jetzt so aussehen:

%Vor%     
Jacob Relkin 27.07.2010, 17:21
quelle
3

Sie können es nicht direkt machen, weil, wie Sie sagen, diese Methode void zurückgibt.

Sie müssen also einen anderen Weg finden, um einen Wert zurückzuerhalten, indem Sie beispielsweise ein NSDictionary anstelle eines NSString übergeben und die Methode das Ergebnis für Sie im Wörterbuch speichern.

    
David Gelhar 27.07.2010 17:20
quelle
2

Ich habe universelle Lösung für asynchronen blockierenden Aufruf mit Rückgabewert für jeden Thread, nicht nur Haupt. Dieses Beispiel für einen Haupt-Thread wie performSelectorOnMainThread: withObject: waitUntilDone:

%Vor%

Ich habe diese Technik nur in der ARC-Umgebung verwendet.

    
poGUIst 30.01.2013 14:01
quelle
2

Hatte dies kürzlich umzusetzen. Hervorragender Kandidat für das Hinzufügen einer Kategorie zu NSObject, damit alle Ihre Objekte dies tun können:

%Vor%     
Colin 21.12.2012 21:30
quelle