【发布时间】:2020-01-11 12:18:21
【问题描述】:
我想将 n 关联对象的数量设置为 Swift 中的一个对象
我的理解是UnsafeRawPointer引用的通常模式是这样的......
static var reference = "someRef"
public func add(to myObject: AnyObject) {
let adding = ThingToAdd()
objc_setAssociatedObject(myObject, &reference, adding, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
但这不适用于n 对add(to:) 的调用次数
同样,如果我每个myObject 只调用一次下面的代码,它也可以正常工作。但是,如果我以同样的方式添加另一个关联对象......它将第一个ThingToAdd 替换为第二个。构建唯一的内联字符串不起作用。在模拟器上没问题,但在设备上就不行了。
public func add(to myObject: AnyObject) {
let adding = ThingToAdd()
var reference = "objectref\(UUID().uuidString)".replacingOccurrences(of: "-", with: "")
objc_setAssociatedObject(myObject, reference, adding, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
我知道这是不正确的,但是我不知道如何创建 n 的数量 UnsafeRawPointers 以存储具有唯一引用的关联对象。
任何帮助/解释将不胜感激。
【问题讨论】:
标签: objective-c swift unsafe unsafe-pointers associated-object