I do not think this will be fixed in the SDK 3.x, so another fix is ββto simply define the functions and move on to the next definition using dynamic search.
Title:
#if TARGET_IPHONE_SIMULATOR enum { OBJC_ASSOCIATION_ASSIGN = 0, OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, OBJC_ASSOCIATION_COPY_NONATOMIC = 3, OBJC_ASSOCIATION_RETAIN = 01401, OBJC_ASSOCIATION_COPY = 01403 }; typedef uintptr_t objc_AssociationPolicy; void objc_setAssociatedObject(id object, void *key, id value, objc_AssociationPolicy policy); id objc_getAssociatedObject(id object, void *key); void objc_removeAssociatedObjects(id object); #endif
Implementation:
#if TARGET_IPHONE_SIMULATOR void objc_setAssociatedObject(id object, void *key, id value, objc_AssociationPolicy policy) { ((void (*)(id, void *, id, objc_AssociationPolicy)) dlsym(RTLD_NEXT, "objc_setAssociatedObject")) (object, key, value, policy); } id objc_getAssociatedObject(id object, void *key) { return ((id (*)(id, void *)) dlsym(RTLD_NEXT, "objc_getAssociatedObject"))(object, key); } void objc_removeAssociatedObjects(id object) { ((void (*)(id)) dlsym(RTLD_NEXT, "objc_removeAssociatedObjects"))(object); }
wbyoung Apr 20 '10 at 23:25 2010-04-20 23:25
source share