Ios NSData getBytes(长度)
在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
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..如果您显示数据并解释您期望的值会更容易。