14

誰でもバイトを読み取る方法を提案できますかNSData( read function in @interface NSInputStream:のようにNSStream)

4

5 に答える 5

26

NSDataでバイナリバイトを読み取る方法は? あなたを助けるかもしれません:

NSString *path = @"…put the path to your file here…";
NSData * fileData = [NSData dataWithContentsOfFile: path];
const char* fileBytes = (const char*)[fileData bytes];
NSUInteger length = [fileData length];
NSUInteger index;

for (index = 0; index<length; index++) {
   char aByte = fileBytes[index];
   //Do something with each byte
}
于 2012-09-17T04:26:17.727 に答える
9

読み取りインターフェイスが必要な場合はNSInputStream、オブジェクトから を作成することもできます。NSData

NSData *data = ...;
NSInputStream *readData = [[NSInputStream alloc] initWithData:data];
[readData open];

ただし、データの内容をinitWithData コピーすることに注意してください。

于 2012-09-17T04:40:41.227 に答える
2

最も簡単な方法の 1 つは、NSData getBytes:range:を使用することです。

NSData *data = ...;
char buffer[numberOfBytes];
[data getBytes:buffer range:NSMakeRange(position, numberOfBytes)];

ここで、位置と長さは NSData 内の読み取り元の位置であり、長さは読み取りたいバイト数です。コピーする必要はありません。

于 2016-12-10T18:51:37.990 に答える