作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
两者都返回相同的指针。我知道 - bytes
属于 NSData
,为什么NSMutableData
介绍 - mutableBytes
?是否只是为了代码清晰,以便更明显地访问可变数据?使用哪一个真的很重要吗?
NSMutableData* mydata = [[NSMutableData alloc] init];
[mydata appendData: [@"hello" dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"%p", [mydata mutableBytes]);
NSLog(@"%p", [mydata bytes]);
最佳答案
有几个原因 NSMutableData
可能会提供单独的 mutableBytes
方法:
mutableBytes
向读者表明您要更改数据。 bytes
方法返回 const void *
. mutableBytes
方法返回 void *
.如果你想改变字节,你需要一个 void *
没有 const
预选赛。 mutableBytes
方法消除了丢弃 const
的需要预选赛。 -[NSData mutableCopy]
方法可能返回
NSMutableData
指向与原始
NSData
相同的缓冲区,并且只有在您调用
mutableBytes
时才创建缓冲区的一个新的、可变的副本。 .但是,根据我非常有限的测试,我认为它不是以这种方式实现的。
关于objective-c - NSMutableData 的 mutableBytes 和 bytes 方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746944/
两者都返回相同的指针。我知道 - bytes属于 NSData ,为什么NSMutableData介绍 - mutableBytes ?是否只是为了代码清晰,以便更明显地访问可变数据?使用哪一个真的很
我是一名优秀的程序员,十分优秀!