Ios NSData getBytes(长度)

Ios NSData getBytes(长度),ios,swift,nsdata,Ios,Swift,Nsdata,在NSData对象上使用getBytes时出现问题。代码如下: if let blobBase64DecodedData = blob.base64DecodedData() { var URILength: UInt8 = 0 if blobBase64DecodedData.count > 0 { let uriLengthRange: Range<Int> = 1..<3 let testData = (blobB

在NSData对象上使用getBytes时出现问题。代码如下:

if let blobBase64DecodedData = blob.base64DecodedData() {
    var URILength: UInt8 = 0
    if blobBase64DecodedData.count > 0 {

        let uriLengthRange: Range<Int> = 1..<3
        let testData =  (blobBase64DecodedData.subdata(in: uriLengthRange) as NSData)
        (blobBase64DecodedData.subdata(in: uriLengthRange) as NSData).getBytes(&URILength, length: MemoryLayout<UInt8>.size)
        let uriDataRange: Range<Int> = 2..<(2+Int(URILength))
        let sURIData = blobBase64DecodedData.subdata(in: uriDataRange) <—CRASH HERE

        // further processing
    }
}
如果让blobbase64decodedata=blob.base64decodedata(){
变量URILength:UInt8=0
如果blobBase64DecodedData.count>0{

让uriLengthRange:Range=1..数据的格式到底是什么,长度是如何存储的?我觉得uriLengthRange和uriDataRange重叠,并且从2字节范围中检索单字节值很奇怪。这就是问题所在…调查后我发现数据的长度应该是第二个字节…Range=1吗。.
1..所以范围2..如果您显示数据并解释您期望的值会更容易。