在NSMutableData中插入前面的字节

时间:2014-07-08 01:05:30

标签: objective-c insert nsdata nsmutabledata

如何在NSMutableData的开头插入一个字节?我知道有一个replaceBytesInRange:方法,但只会替换字节。有一堆insertXAtIndex:方法但没有一个用于字节。我怎样才能做到这一点?我能想到的一种方法是:

NSMutableData *theData = [NSMutableData dataWithBytes:myByte];
[theData appendData:myOriginalData];
myOriginalData = nil;

但必须有更好的方法。

我也尝试了这个,但它不起作用:

char *sec = "Second!";
char *fir = "First!";

NSMutableData *theData = [NSMutableData dataWithBytes:(const void *)sec length:7];
[theData replaceBytesInRange:NSMakeRange(0, 0) withBytes:(const void *)fir];

NSString *str1 = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
NSLog(@"%@", str1); //Prints "Second!"

1 个答案:

答案 0 :(得分:5)

[theData replaceBytesInRange:NSMakeRange(0, 0) withBytes:(const void *)fir length:strlen(fir)];

应该这样做。