Domanda

In Cacao, ho installato due NSThreads, un produttore e un consumatore. Il produttore aggiunge dati a un NSMutableData, e il ricevitore si apre un NSInputStream da tali dati e legge in pezzi.

Il filo produttore scrive molto più velocemente di quanto i processi di consumo, che è ok. Ma il produttore produce solo una quantità finita di lavoro, poi esce. Mi piacerebbe per il thread consumatore di gestire l'evento NSStreamEventEndEncountered. Come posso segnalare questo quando il NSInputStream proviene da una NSMutableData?

Devo solo fare il produttore invia una serie di byte con un numero magico che indica la fine del flusso?

È stato utile?

Soluzione

  

Il produttore aggiunge dati a un NSMutableData, e il ricevitore si apre un NSInputStream da tali dati e legge in pezzi.

Non funzionerà. Da la documentazione -initWithData: :

  

Il contenuto di data vengono copiati.

Significato, copierà fuori tutto quello che è nell'oggetto di dati in quel momento, non segue il contenuto dell'oggetto di dati quando si aggiungono più dati su di esso.

(Lo stesso vale per +inputStreamWithData: )

Provare una .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top