如何dealloc从Swift结构中引用的UnsafeMutablePointer

时间:2016-03-14 11:28:07

标签: ios swift cocoa-touch swift2

如果我有这样的Swift结构:

struct ViewBox {
    let pointer: UnsafeMutablePointer<UIView>
    init() {
        pointer = UnsafeMutablePointer<UIView>.alloc(1)
    }
}

当结构被解除分配时,我应该如何确保指针被正确解除分配?我无法对Swift结构使用deinitdealloc方法。

或者我不必关心并且它会自动发生?

1 个答案:

答案 0 :(得分:3)

您可以将指针包装在一个类中。像这样:

struct ViewBox {
    class WrappedPointer() {    
        let pointer: UnsafeMutablePointer<UIView>

        init() {
            pointer = UnsafeMutablePointer<UIView>.alloc(1)
        }

        deinit {
            pointer.dealloc(1)
        }
    }

    let wrappedPointer = WrappedPointer()
}