2009-07-29 7 views
0

Ich habe eine iPhone-App, die eine Verbindung zu einer IP-Kamera herstellt und MJPEG-Daten mit der GET-Methode abruft. Alles scheint auf dem Simulator zu funktionieren, aber auf dem Gerät scheint die Benutzeroberfläche zu blockieren: Immer wenn ich Bilddaten erhalte, lade ich sie in uiimageview. Es scheint, als wäre der einzige Ausweg, AsyncSocket auf einem Hintergrund-Thread laufen zu lassen und das Image auf dem mainThread zu setzen.Wie verwende ich AsyncSocket in einem Worker-Thread anstelle von Haupt-Thread?

Wie mache ich das für AsyncSocket?

Antwort

0

Es gibt ein sehr einfaches asynchrones Socket-Muster, das mit dem NStream-Objekt erstellt werden kann. Sehen Sie sich das WiTap-Beispiel auf der iPhone-Entwickler-Website an, um ein Beispiel für die Implementierung zu erhalten.

Wenn Sie wie im WiTap-Beispiel implementiert werden, benötigen Sie wahrscheinlich keinen Hintergrund-Thread. Sollten Sie dennoch einen Hintergrund-Thread benötigen, denken Sie daran, dass Sie den Runloop für diesen Thread wahrscheinlich manuell verarbeiten müssen, damit Ihr Socket ordnungsgemäß funktioniert. Weitere Informationen hierzu finden Sie in der NSRunloop-Dokumentation.