0
일부 바이트를 가져 와서 문자열에 넣을 수 없습니다 ... 이 함수를 사용하여 데이터를 가져옵니다. 모든 것이 잘 작동하지만 데이터가 비어 있지 않아도 빈 문자열이되므로 getBytes 함수에 type 문자열의 버퍼를 사용할 수 없습니다.NSData에서 getBytes를 가져와 결과를 문자열에 넣으십시오.
private func getTYPE() {
let x = NSMutableData(contentsOf: URL(fileURLWithPath: path))
let _mode_: [UInt8] = [0x66, 0x74, 0x79, 0x70]
let data = NSData(bytes: _mode_, length: _mode_.count)
let range = x?.range(of: data as Data, in: NSRange(location: 0, length: (x?.length)!))
// Problems here
var y: String = ""
x?.getBytes(&y, range: NSRange(location: (range?.location)! + (range?.length)!, length: 3))
Swift.print(y) // Print result
}
내가 대신 문자열의 단지 UINT8을 좀하려고하면 동일한 기능이 잘 작동 ... 를이 예외의 어떤 종류를 포기하지 않고 문자열은 항상 비어 :
// Working Context
var y: UInt8 = 0
x?.getBytes(&y, range: NSRange(location: (range?.location)! + (range?.length)!, length: 1))
여러 문자를 함께 읽으려면 어떻게해야합니까?
데이터가 바이트의 MutableCollection copyBytes를 사용하고 범위를 전달할 수 있습니다. –
'let x = "테스트 문자열".data (.utf8 사용)! var y : [UInt8] = [0,0,0] x.copyBytes (to : & y, from : 0 .. <3) y // [65, 32, 116]' –