オブジェクトを 16 進文字列にシリアル化する次の拡張機能を検討してください。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("") } }
が非所有ポインターである場合、UnsafeBufferPointer
明示的に破棄を呼び出す必要がない (またはできない) ことを意味しますか? UnsafePointer
オブジェクトのバイトのメモリからを作成している場合NSData
、バッファがコピーされた後にそのポインタを確実に破棄する必要がありますか?