有一个特殊的 NSString
initWithData
方法用于获取位并将它们转换为字符串。但是,我还没有在 NSNumber
类引用中找到它。目前,我正在以 NSData
格式从服务器获取原始数据(字节)。我知道如何在 C 中使用 memcpy
和 int
指针来做到这一点。但我很好奇直接从 NSData
执行此操作的便捷方法是什么。无需转换。例如,我正在获取 00000010
字节,我需要将其转换为值为 2 的 NSNumber
或 NSInteger
。
最佳答案
NSData
只是一个字节桶,不知道其中包含的数据。 NSString
的 initWithData:encoding:
方法是此方法的倒数(它做相反的事情):
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
因此,要完整回答您的问题,了解您的数字最初是如何被强制转换为 NSData
对象非常重要。知道编码函数后,搜索的是倒数函数。
根据您在问题中包含的内容,可能有许多不同的解决方案。但是,您可能能够使用以下几行中的内容,使用 NSData 对象上的 getBytes:length:
将其转换为可用的数字格式。例如
NSUInteger decodedInteger;
[myDataObject getBytes:&decodedInteger length:sizeof(decodedInteger)];
您可以将 decodedInteger
的类型更改为适合您的 NSData
对象中字节的任何类型。
关于iphone - 如何将 NSData 字节转换为 NSNumber 或 NSInteger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9224712/