【问题标题】:How to add object to an NSPointerArray?如何将对象添加到 NSPointerArray?
【发布时间】:2015-07-02 17:32:57
【问题描述】:
我想将弱引用存储在 NSPointerArray 中,但出现错误:
public var objectWithReloadFRC = NSPointerArray(options: NSPointerFunctionsWeakMemory)
objectWithReloadFRC.addPointer(self) //self is an UIViewController subclass
也试过了:
objectWithReloadFRC.addPointer(UnsafePointer(self)
【问题讨论】:
标签:
ios
swift
nspointerarray
【解决方案1】:
您可以通过以下方式获取指向用于对象的存储空间的指针
unsafeAddressOf()。由于addPointer() 需要一个可变 指针,
需要另一个转换:
objectWithReloadFRC.addPointer(UnsafeMutablePointer(unsafeAddressOf(self)))
斯威夫特 3:
var objectWithReloadFRC = NSPointerArray(options: .weakMemory)
objectWithReloadFRC.addPointer(Unmanaged.passUnretained(self).toOpaque())