Tôi muốn sử dụng CFStreamCreatePairWithSocketToHost
với NSInput
- và OutputStream
s. Tôi có hai ivars NSInputStream *_inputStream
và NSOutputStream *_outputStream
.Truyền con trỏ gián tiếp tới con trỏ Mục tiêu-C đến 'CFReadStreamRef *' không được phép với ARC
Sau đây mang lại cho tôi hai thông báo lỗi:
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
Làm thế nào tôi sẽ sửa lỗi này? Tôi đã thử sử dụng __bridge
nhưng tôi nhận được thông báo lỗi tương tự.
Đây có phải là cách duy nhất để thực hiện việc này không? –
@WTP Không chắc chắn - Tôi đã không dành nhiều thời gian với ARC cho đến nay. Quấn nó đi! :) – justin
@WTP: Đừng quên rằng hàm sẽ zap nội dung trước đó của _inputStream và _outputStream với CRStreamRefs mới của riêng nó, vì vậy bạn cũng có thể làm cho chúng trở thành CFStreamRefs. – JeremyP