我想相關的屬性設置爲一個陣列擴展:斯威夫特objc_getAssociatedObject始終爲零
private var AssociatedObjectHandle: String = "BlaBLabla"
extension Array {
var emptyIndex:Int {
mutating get {
if let object = objc_getAssociatedObject(self, &AssociatedObjectHandle) {
return object as! Int
}
let index = self.searchEmptyIndex()
self.emptyIndex = index
return index
}
set {
let new = (newValue as NSInteger)
objc_setAssociatedObject(self, &AssociatedObjectHandle, new, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN)
}
}
func searchEmptyIndex() -> Int {
if let arr = self as? [Int] {
return arr.index(of: -1)!
}
return -1
}
}
的objc_getAssociatedObject調用總是返回零!
任何人有任何想法爲什麼?
我敲我的頭有關此最後一小時......
是'searchEmptyIndex' API你的代碼嗎?你可以在你的問題中加入嗎? –
是啊對不起...添加 – YanivH
我假設'searchEmptyIndex'住在你的數組擴展中,對吧?在你的代碼中,它在擴展之外。 –