-1

我收到警告

不兼容的 ponter 类型 'uint8_t *' 发送到 'uint8_t **'

在 NSStream 类的以下方法中将值传递给参数“缓冲区”时

- (BOOL)getBuffer:(uint8_t **)buffer length:(NSUInteger *)len;

下面是我正在使用的代码。'fileStream' 是 'NSInputStream' 即时对象

    uint8_t oneByte;
[fileStream read: &oneByte maxLength: 1];
NSUInteger* remaining = 0;
[fileStream getBuffer: &oneByte length:remaining];
4

1 回答 1

2

从签名中可以看出,该方法不希望您为缓冲区分配空间或传递长度:它将返回一个指向现有缓冲区的指针,并将该缓冲区的长度设置为NSUInteger您传递的指针,如下所示:

uint8_t *buf;
NSUInteger len;
[fileStream getBuffer:&buf length:&len];
于 2013-11-11T14:29:40.050 回答