Desidero utilizzare CFStreamCreatePairWithSocketToHost
con NSInput
- e OutputStream
s. Ho due ivar NSInputStream *_inputStream
e NSOutputStream *_outputStream
.La trasmissione di un puntatore indiretto a un puntatore Objective-C a "CFReadStreamRef *" non è consentita con ARC
Di seguito mi dà due messaggi di errore:
CFStreamCreatePairWithSocketToHost(NULL,
(__bridge_retained CFStringRef)self.hostname, self.port,
(CFReadStreamRef *)&_inputStream, (CFWriteStreamRef *)&_outputStream);
error: cast of an indirect pointer to an Objective-C pointer to '
CFReadStreamRef *
' (aka 'struct __CFReadStream **
') is disallowed with ARC
error: cast of an indirect pointer to an Objective-C pointer to 'CFWriteStreamRef *
' (aka 'struct __CFWriteStream **
') is disallowed with ARC
Come dovrei risolvere questo problema? Ho provato a utilizzare __bridge
ma ho ricevuto messaggi di errore simili.
È questo l'unico modo per farlo? –
@WTP Non sono sicuro: non ho passato molto tempo con ARC fino ad oggi. Avvolgilo! :) – justin
@WTP: non dimenticare che la funzione eseguirà lo zapping del contenuto precedente di _inputStream e _outputStream con i suoi nuovi CRStreamRefs, quindi potresti anche renderli CFStreamRefs. – JeremyP