nilを私は、Array拡張子に関連付けられているプロパティにしようとしています:スウィフト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コールは常にnilを返します!
誰でも何らかの理由がありますか?
私はこのことについて、最後の時間のために私の頭を叩いています...
あなたのコードも 'searchEmptyIndex' APIですか?あなたはそれをあなたの質問に含めることができますか? –
ええええええええええええええええば添えて – YanivH
Array extension内に 'searchEmptyIndex'があると仮定していますよね?上のコードでは、拡張子の外にあります。 –