如何在运行时动态添加方法和属性? ios

 

动态添加方法:

使用class_addMethod函数。

示例:
void dynamicMethodIMP(id self, SEL _cmd) {
    NSLog(@"Dynamic method added!");
}

class_addMethod([MyClass class], @selector(dynamicMethod), (IMP)dynamicMethodIMP, "v@:");


动态添加属性:

使用关联对象(Associated Objects)。

示例:
static char myKey;
objc_setAssociatedObject(self, &myKey, @"Dynamic Property", OBJC_ASSOCIATION_RETAIN_NONATOMIC);
NSString *value = objc_getAssociatedObject(self, &myKey);

 


 

posted @ 2025-03-19 17:32  黄增松  阅读(40)  评论(0)    收藏  举报