根据Apple文档,类方法
+datawithBytesNoCopy:length:freeWhenDone:
继承自 NSData
创建并返回一个数据对象,该对象保存来自给定缓冲区的给定字节数。
但
NSUInteger len = 1024;
char *buffer = malloc(len);
NSMutableData *data = [NSMutableData dataWithBytesNoCopy:buffer length:len freeWhenDone:YES];
char *dataBytes = data.mutableBytes;
NSLog(@"%@", dataBytes == buffer ? @":D" : @":(");
印刷
:(
该方法似乎实际上制作了一个副本,我预计它不会。我用错了吗?等效的 NSData 方法按预期工作。我如何创建一个 NSMutableData 对象指向一个已经存在的缓冲区而不获取任何所有权?