Ho questa classe consumer che accetta un NSInputStream come argomento che verrà elaborato async, e voglio spingere i dati che provengono da una classe producer che richiede che abbia un NSOutputStream fornito come sorgente di output. Ora, come posso configurare un flusso di buffering (o trasparente) che funge da flusso di output per il produttore e contemporaneamente da NSInputStream per la mia classe consumer?Buffering NSOutputStream utilizzato come NSInputStream?
Ho guardato un po 'NSOutputStream + outputStreamToMemory e + outputStreamToBuffer: capacità: ma non ho davvero capito come utilizzarlo come input per un NSInputSource.
Avevo un'idea di come impostare una classe uomo medio che contiene il buffer effettivo, quindi creare due sottoclassi (una per ogni NSInput/OutputStream) che contiene un riferimento a questa classe di buffer e che queste sottoclassi delegano la maggior parte delle chiamate a tale classe, ad esempio metodi di sottoclasse di output hasSpaceAvailable, write: maxLength :, e per l'input, hasBytesAvailable, read: maxLength: ecc.
Sono graditi suggerimenti su come affrontare questa situazione. Grazie.
Questa è una grande domanda, sto lottando per trovare una risposta ad esso troppo! Quello che ho scoperto finora è usare un file come un intermediario (che non sembra essere molto efficiente). Spero che qualcuno trovi una soluzione migliore – Nick
Ho ricevuto alcuni suggerimenti nei forum di apple dev che mi hanno indirizzato a CFStreamCreateBoundPair. C'è un codice di esempio per questo nel progetto di esempio SimpleURLConnections. Puoi anche consultare https://devforums.apple.com/it/message/258868#258868. Tuttavia non l'ho più esaminato dopo. – cahlbin