- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 iOS 编程的新手。我有一个带签名的函数
(NSData*) Decrypt;
在函数中我必须从 char* 缓冲区构建 NSData* 并且我正在尝试这三个函数。
NSData *returnData = [[NSData alloc] initWithBytes:buffer length:buflength];
NSData *returnData = [NSData dataWithBytes:buffer length:buflength];
NSData *returnData = [NSData dataWithBytesNoCopy:buffer length:buflength];
return returnData;
此外,此代码也有效。
return [NSData dataWithBytesNoCopy:buffer length:buflength]
除了
之外的一切NSData *returnData = [NSData dataWithBytesNoCopy:buffer length:buflength];
工作正常。是什么原因 ?它们之间有什么区别,哪个更好用?
最佳答案
[[NSData alloc] initWithBytes:buffer length:buflength]
和 [NSData dataWithBytes:buffer length:buflength]
是一样的,第二个只是第一个的简写。这些方法创建一个包含从 buffer
字节复制的 buflength
字节的数据对象。
[NSData dataWithBytesNoCopy:buffer length:buflength]
创建一个数据对象,该对象包含 buffer
字节中的 buflength
字节。返回的对象拥有 buffer
指针的所有权,并在释放时释放它。因此,buffer
必须指向用malloc
分配的内存块。
关于ios - dataWithBytes、dataWithBytes 和 initWithBytes 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28160740/
我是 iOS 编程的新手。我有一个带签名的函数 (NSData*) Decrypt; 在函数中我必须从 char* 缓冲区构建 NSData* 并且我正在尝试这三个函数。 NSData *return
有什么区别 + (instancetype)dataWithBytes:(const void *)bytes length:(NSUInteger)length; 和 + (instancetype
它仅在 iOS7 上崩溃 +(PageSection *)initwithPageSection:_anchor withHeader:_subHeader withDetails:_text wit
我是一名优秀的程序员,十分优秀!