Hello, Can I ask you why choose AssociatedObject instead of singleton NSMutableSet in RFAspects.m? Is it for the memory optimization? Thank you
static Class aspect_swizzleClassInPlace(Class klass) {
NSCParameterAssert(klass);
// NSString *className = NSStringFromClass(klass);
//
// _aspect_modifySwizzledClasses(^(NSMutableSet *swizzledClasses) {
// if (![swizzledClasses containsObject:className]) {
// aspect_swizzleForwardInvocation(klass);
// [swizzledClasses addObject:className];
// }
// });
NSNumber *hasBeenHooked = objc_getAssociatedObject(klass, kClassHasBeenHookedKey);
if (!hasBeenHooked.boolValue) {
aspect_swizzleForwardInvocation(klass);
objc_setAssociatedObject(klass, kClassHasBeenHookedKey, @YES, OBJC_ASSOCIATION_RETAIN);
}
return klass;
}
Hello, Can I ask you why choose AssociatedObject instead of singleton NSMutableSet in RFAspects.m? Is it for the memory optimization? Thank you