我试图将两个NSData
对象连接成一个NSMutableData
,而不是让他们回来。现在我试图这样做:Swift。如何将字节从NSData写入另一个NSData?
- 获取第一个对象的长度。
- 按以下顺序写入
NSMutableData
:第一个对象长度,第一个对象,第二个对象。
代码如下所示:
let firstString = "first_string";
let secondString = "secondSting";
let firstData = firstString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
let secondData = secondString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
let mutableData = NSMutableData()
var length = firstData.length
mutableData.appendBytes(&length, length: sizeof(Int))
mutableData.appendData(firstData)
mutableData.appendData(secondData)
然后我想DATAS回来。所以我想读取第一个数据长度,然后得到两个数据。
var length = 0
mutableData.getBytes(&length, length: sizeof(Int))
但是,当我试图让数据我得到崩溃,而不是:
var data = NSData()
mutableData.getBytes(&data, range: NSMakeRange(sizeof(Int), length))
也许有人知道哪里是我的问题还是如何让DATAS?
除非我读错了,否则问题是如何连接两批数据,并在此之前以第一批数据的长度开始数据。这似乎没有回答,它需要已经形成的数据并返回基于sizeof(Int)和长度的子范围。我不明白这个范围与问题的问题有什么关系。 – sketchyTech
@GoodbyeStackOverflow:从问题:*“然后我想获取数据...但是当我试图获取数据时,我正在崩溃,而不是”* - 据我了解的问题,这是关于提取数据部分再次。我衷心希望如果OP没有解决问题,OP不会接受答案。 –
是的,你说得对。我误解了这个问题。抱歉。它把我和UInt8和Int混合在一起,但我猜它可行(防止在32位和64位系统之间移动?)。 – sketchyTech