交换+号类方法

2018-12-18  本文已影响7人  跬步千里_LenSky
+(void)load
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        SEL aSel = @selector(systemFontOfSize:);
        SEL newSel = @selector(changeSystemSize:);
        Class metaClass = object_getClass(self);
        Method lastMethod=class_getInstanceMethod (metaClass, aSel);
            //Method  是返回的方法的地址
        Method newMethod= class_getInstanceMethod (metaClass,newSel);
        method_exchangeImplementations(lastMethod, newMethod);
    });
}
+(void)changeSystemSize:(CGFloat)size
{
    CGFloat aSize = size * scaleX;
    [self changeSystemSize:aSize];
}
上一篇 下一篇

猜你喜欢

热点阅读