1
objc_setAssociatedObject
をオブジェクトに関連付けるにはどうすればいいですか?Obj-Cのランタイムで構造体をオブジェクトに関連付ける方法
OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
objc_setAssociatedObject
をオブジェクトに関連付けるにはどうすればいいですか?Obj-Cのランタイムで構造体をオブジェクトに関連付ける方法
OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
value
はObjective-Cオブジェクトである必要があります。 Objective-Cクラスで構造体をラップする必要があります。これにはNSValueを使用できます。
StructType s = ...;
NSValue* value = [NSValue valueWithBytes:&s objCType:@encode(StructType)];
objc_setAssociatedObject(obj, SPECIAL_KEY, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
...
NSValue* value = objc_getAssociatedObject(obj, SPECIAL_KEY);
StructType s;
[value getValue:&s];