在ios中给分类添加属性,可以通过属性关联来实现重写set方法如下:
-(NSMutableDictionary *)keyObjectDict{ NSMutableDictionary *tempDic = objc_getAssociatedObject(self, @selector(keyObjectDict)); if (!tempDic) { tempDic = [NSMutableDictionary dictionary]; objc_setAssociatedObject(self, @selector(keyObjectDict), tempDic, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } return tempDic; }
分类里 如果用了runtime里面方法交互的话,如果是交换了系统的方法,若自己没有实现这个方法就会调用系统的方法来调用,导致系统中所有的继承这个类所有的调用这个方法的话都会调用交换后的方法导致问题。 解决这个问题可以通过自己重写这个方法,就不会去 找交换系统的方法了。
网友评论