我有一个NSMutableData,我用它的方法创建子数据,以获取我将创建的整数的确切字节。但不知何故,我无法将该字节转换为整数。在调试时似乎没问题,我将子数据值看作"< 04 00 00 00>" - 我需要转换 - 。
var lengthData:NSData = buffer.subdataWithRange(NSMakeRange(12,4))
var length:Int = //Conversion which must be done from lengthData
var dataPart:NSData = buffer.subdataWithRange(NSMakeRange(16, length))
我尝试将lengthData转换为NSString并获取它的整数值,但没有成功。你能帮忙解决这个转换吗?提前谢谢。
答案 0 :(得分:8)
只需将指针传递给.getBytes(...)
函数,就可以将所需的字节数读入基本类型变量:
var length: Int = 0
data.getBytes(&length, range: NSRange(location: 12, length: 4))
答案 1 :(得分:0)
我找到了一种方法来转换它,但不是直接转换它。首先我创建一个长度为1的数组(我知道它将是数组中的1个元素),然后我将NSData值复制到该数组中,然后获取第一个元素。它就像:
var lengthData:NSData = buffer.subdataWithRange(NSMakeRange(12,4))
var array = Int[](count: 1, repeatedValue: 1)
lengthData.getBytes(&array, length:1)
var length:Int = array[0]
这对我很有帮助,但任何直接转换也会受到赞赏。