iOS 6.1.3 を使用する iPhone では、NSRunLoop を使用せずに outputStream に書き込もうとしています。私のストリームは、次のように単純に初期化されます。
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 を返さないため、コードがスタックしています。
データを送信するために、出力ストリームに対して実行する他の初期化タスクはありますか?