NSData bytes 方法 - (const void *)bytes 返回指针空

Posted

技术标签:

【中文标题】NSData bytes 方法 - (const void *)bytes 返回指针空【英文标题】:NSData bytes method - (const void *)bytes returned pointer empty 【发布时间】:2014-03-12 00:39:06 【问题描述】:
const unsigned char *rawImgNSDataBuffer=(unsigned char *)[self.RNGbyImage.rawImgNSData bytes];

我正在尝试通过调用方法 - (const void *)bytes 来读取我的 NSData。 我所做的是将返回的字节分配给我自己的 unsigned char 指针,以便从这个指针 rawImgNSDataBuffer 中读取 rawImgNSData 中的字节。但是,返回的指针 rawImgNSDataBuffer 的内容始终为 0。它不是零,但它从不包含我期望的 char 值。 我会保证我的 NSData 不是 nil 并且 NSData 的长度 > 0。我努力阅读它但没有奏效。任何帮助将不胜感激。

【问题讨论】:

你看NSData bytes的描述信息了吗? “指向接收者内容的只读指针。”,这意味着如果 NSData 对象消失,char 数据也会消失。 【参考方案1】:

如果您的 rawImgNSDataBuffer 不是 nil,那么事情应该可以正常工作。你是什​​么意思它有 0 内容?你是在调试区看的吗?

如果您正在打印内容并且它什么都不显示,这可能只是意味着第一个字节是 '00' 就 char 类型而言,它只是意味着字符串的结尾。但是,这并不意味着那里没有数据。

我建议在调用字节后放置一个断点,然后在调试区域中右键单击 rawImgNSDataBuffer 变量并选择“查看“rawImgNSDataBuffer”的内存”。您将更好地了解那里的数据实际情况。

【讨论】:

以上是关于NSData bytes 方法 - (const void *)bytes 返回指针空的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 中对 NSData 进行按位异或?

Objective-C NSData/NSMutableData

从 NSData 字节获取浮点值

IOS核心蓝牙:为特性编写NSData

使用'static final byte'切换案例

SWIG 将 const unsigned char example[] 包装到 Java byte[] 作为参数