내가 hasBytesAvailable에 대한 NO 스트림 보고서를있는 NSData 객체에서 NSInputStream을 생성하지만, 한 번 생성 해요 :내가 무엇을 놓치고 있습니까? : 아이폰의 목표 - C NSInputStream initWithData
는NSData* data = [outputStream propertyForKey: NSStreamDataWrittenToMemoryStreamKey];
NSLog(@"creating stream with data 0x%x length %d", [data bytes], [data length]);
NSInputStream *insrm = [[NSInputStream alloc] initWithData:data];
[insrm open];
uint8_t* buf = NULL;
NSUInteger len;
BOOL result = [insrm getBuffer:&buf length:&len];
BOOL hasbytes = [insrm hasBytesAvailable];
NSLog(@"getBuffer:%d hasBytes:%d", result, hasbytes);
NSLog(@"created inputstream data %d len %d", buf, len);
로그 :
[26797:20b] creating stream with data 0x7050000 length 34672
[26797:20b] getBuffer:0 hasBytes:0
[26797:20b] created inputstream data 0 len 0
는 무엇을 나는 여기에 놓치고 ?
나는 이것을 잠시 보지 못했지만 전화가 작동하지 않는 것보다 나빴던 것을 기억합니다. 'getBuffer : length :'는 스트림을 손상시키고 미래의 읽기가 실패했다. 'hasBytesAvailiable'이 어떻게 실패하는지보십시오. 그러나'getBuffer : length :'앞에 놓기 만하면됩니다. 어쨌든 일단 전화를 받으면 모든 것이 잘 작동하기 시작합니다. 어쨌든 디버그 용도로만 사용되었습니다. – gabe