在带有 ios 6.1.3 的 iPhone 上,我正在尝试写入 outputStream,而没有 NSRunLoop。我的流只是通过以下方式初始化:
    session = [[EASession alloc] initWithAccessory:accessory
                                       forProtocol:protocolString];
    if (session)
    {
        NSLog(@"opening the streams for this accessory");
        [[session inputStream] open];
        [[session outputStream] open];
        [session retain];
        streamReady = true;
        receivedAccPkt = true;
    }
然后,在代码的其他地方,当我尝试按如下方式传输数据时:
uint8_t requestData[8] = {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8};
while (![[eas outputStream] hasSpaceAvailable]);
@synchronized(self) {
    len += [[eas outputStream] write:requestData maxLength:8];
}
'hasSpaceAvailable' 方法永远不会返回 true,因此代码卡住了。
为了发送数据,是否需要为输出流完成任何其他初始化任务?