如何将对象添加到NSPointerArray?

Ján*_*nos 2 ios nspointerarray swift

我想在一个弱的引用存储,NSPointerArray但我得到一个错误:

public var objectWithReloadFRC = NSPointerArray(options: NSPointerFunctionsWeakMemory)
objectWithReloadFRC.addPointer(self) //self is an UIViewController subclass
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

也试过这个:

objectWithReloadFRC.addPointer(UnsafePointer(self)
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 6

您可以获得指向用于对象的存储的指针 unsafeAddressOf().由于addPointer()需要一个可变指针,因此需要进行另一次转换:

objectWithReloadFRC.addPointer(UnsafeMutablePointer(unsafeAddressOf(self)))
Run Code Online (Sandbox Code Playgroud)

斯威夫特3:

var objectWithReloadFRC = NSPointerArray(options: .weakMemory)
objectWithReloadFRC.addPointer(Unmanaged.passUnretained(self).toOpaque())
Run Code Online (Sandbox Code Playgroud)