Je crée un nsInputStream d'un objet NSData mais une fois créé les rapports de flux NO pour hasBytesAvailable:Qu'est-ce qui me manque? : IPhone Objective-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);
Log:
[26797:20b] creating stream with data 0x7050000 length 34672
[26797:20b] getBuffer:0 hasBytes:0
[26797:20b] created inputstream data 0 len 0
Qu'est-ce que je manque ici ?
Je n'ai pas regardé cela depuis un moment mais je me souviens que c'était pire que l'appel ne fonctionnait pas. Le 'getBuffer: length:' semblait corrompre le flux et les futures lectures échouaient. Voyez comment 'hasBytesAvailiable' échoue? Mais ça marcherait très bien si je le mettais avant le 'getBuffer: length:'. Quoi qu'il en soit, tout a commencé à fonctionner correctement une fois que j'ai pris l'appel. Il était juste là pour des fins de débogage de toute façon. – gabe