考虑这个NSData
将对象序列NSData
化为十六进制字符串的扩展:
extension NSData { func base16EncodedString(uppercase uppercase: Bool = false) -> String { let buffer = UnsafeBufferPointer<UInt8>(start: UnsafePointer(self.bytes), count: self.length) let hexFormat = uppercase ? "X" : "x" let formatString = "%02\(hexFormat)" let bytesAsHexStrings = buffer.map { String(format: formatString, $0) } return bytesAsHexStrings.joinWithSeparator("") } }
如果 anUnsafeBufferPointer
是非拥有指针,这是否意味着我不需要(或无法)显式调用销毁?如果我UnsafePointer
从对象字节的内存中创建一个NSData
,是否需要确保在复制缓冲区后销毁该指针?