0
私は最近、NSMapTable
(doc,nshipster)を発見しました。関連オブジェクトの代わりに使用できるかどうか疑問に思っていました。Objective-C関連オブジェクト対NSMapTable
ここで標準に関連するオブジェクトを使用した例です:
NSMapTable
を使用して実装対
var fooKey = "foo"
extension UIView {
var foo: UIImage? {
set {
objc_setAssociatedObject(self, &fooKey, newValue, .OBJC_ASSOCIATION_RETAIN)
}
get {
return objc_getAssociatedObject(self, &fooKey) as? UIImage
}
}
}
:
let barTable = NSMapTable<UIView, UIImage>(keyOptions: [.weakMemory], valueOptions: [.strongMemory])
extension UIView {
var bar: UIImage? {
get {
return barTable.object(forKey: self)
}
set {
barTable.setObject(newValue, forKey: self)
}
}
}
私がいなくてもそうであるように、私は、運との違いをGoogleと理解しようとしました私は2つの実装をどのように比較できるかを知っています。
どうすれば比較できますか?違いは何ですか?
おかげ
bbumの答えは、これらの2つの違いの1つの例ですが、ニーズに応じた回答を得るためには、ユースケースの具体例を挙げる必要があります。最初の場所? –
何も具体的なことは何もなく、私は技術的な違いと2つのアプローチを比較する方法を理解しようとしていました。 –