NSData到Swift Integer

时间:2014-07-14 08:32:51

标签: integer swift nsdata

我有一个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并获取它的整数值,但没有成功。你能帮忙解决这个转换吗?提前谢谢。

2 个答案:

答案 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]

这对我很有帮助,但任何直接转换也会受到赞赏。