我正在實施一個純Swift NSData
替代方案。下面是我的Swift 2代碼的一部分。據我所知,Data
實例取消初始化並沒有destroy()
和dealloc()
字節block
緩衝區指向。 那麼,有沒有辦法在緩衝區指針上調用destroy
和dealloc()
,以防止Data
實例取消初始化之前的內存泄漏?發佈UnsafeMutableBufferPointer <UInt8>值
public struct Data: DataContainer {
public typealias Block = UInt8
public var blocks: UnsafeMutableBufferPointer<Block>
public init(bytes: UnsafeMutablePointer<Block>, length: Int) {
// copy bytes
let bytesCopy = UnsafeMutablePointer<Block>.alloc(length)
bytesCopy.initializeFrom(bytes, count: length)
// init byte blocks
self.blocks = UnsafeMutableBufferPointer<Block>(start: bytesCopy, count: length)
}
}
非常感謝你,你的回答幫我節省我的時間 – b1nary
@ b1nary:不客氣。 - 順便說一句,不是你自己的內存分配,你可以使用'[UInt8]'數組作爲後備存儲,然後自動處理解除分配。 –