Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSData表现为可消费数据流。可能的_Iphone_Objective C_Cocoa Touch_Nsdata - Fatal编程技术网

Iphone NSData表现为可消费数据流。可能的

Iphone NSData表现为可消费数据流。可能的,iphone,objective-c,cocoa-touch,nsdata,Iphone,Objective C,Cocoa Touch,Nsdata,我目前正在进行大量的数据争论。我接收一个LLOONGG NSData字节流,然后解析该数据。解析非常简单。然而,我必须在解析时通过不太优雅的簿记来模拟数据的消耗。以下是我实施的NData类别中的典型方法: //获取一个小小的endian 32位数字 -(uint32_t)getInt32OffsetIncrement:(nsInteger*)偏移量{ } 如您所见,我检索了数据,然后前进到NSRange“pointer”进入数据流。当我完成时,我已经消耗了整个数据流 我是否忽略了NSData上可

我目前正在进行大量的数据争论。我接收一个LLOONGG NSData字节流,然后解析该数据。解析非常简单。然而,我必须在解析时通过不太优雅的簿记来模拟数据的消耗。以下是我实施的NData类别中的典型方法:

//获取一个小小的endian 32位数字 -(uint32_t)getInt32OffsetIncrement:(nsInteger*)偏移量{

}

如您所见,我检索了数据,然后前进到NSRange“pointer”进入数据流。当我完成时,我已经消耗了整个数据流

我是否忽略了NSData上可以同时检索数据并沿数据流长度前进指针的任何方法

干杯,
Doug

我刚刚编写了与此非常类似的代码。我不相信有任何内置的NSData方法可以帮助实现这一点。看起来您已经在作为NSData类别执行此操作。我认为这是你能做的最好的了,除非你想在一个成员中建立子类并保持偏移量

uint32_t unused;
NSRange myRange = NSMakeRange(*offset, sizeof(unused));

[self getBytes:&unused range:myRange];

*offset += sizeof(unused);

return CFSwapInt32LittleToHost(unused);