8.5 Asynchrones Lesen von Dateien

Dieser Code hat ein Problem. Die Schleife zum Lesen der Daten hält die Anwendung auf, bis der Stream eingelesen ist. Die Anwendung kann also nichts anderes tun – weder das GUI rendern noch eine Eingabe verarbeiten noch irgendetwas sonst, bis das Ende des Streams erreicht ist. Wenn Dateien größer werden und die Zeit zum Einlesen länger wird, wird das immer weniger akzeptabel.

Das Hauptproblem besteht darin, dass die Methode read:maxLength: alles blockiert, bis die Bytes eingelesen werden können. Beim Arbeiten mit Netzwerk-Streams und deren inhärenter Unzuverlässigkeit ist das kritischer, aber es ist immer von Vorteil, einen fehlertoleranten Ansatz zu verfolgen.

Ein NSStream kann so eingerichtet werden, dass er

Get Entwickeln mit dem iPhone SDK now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.