一、从别的类拷贝方法get
//说明:StyleKit是类名 该方法寻找类中包含draw的方法string
- (void)searchMethodsit
{io
self.methodsArray = [@[] mutableCopy];table
int unsigned numMethods;class
Method *methods = class_copyMethodList(objc_getMetaClass("StyleKit"), &numMethods);List
for (int i = 0; i < numMethods; i++) {方法
NSString *stringFromSelector = NSStringFromSelector(method_getName(methods[i]));im
if ([stringFromSelector rangeOfString:@"draw"].location != NSNotFound) {tab
[self.methodsArray addObject:stringFromSelector];
}
}
free(methods);
}
//说明:self.imageList 整数取0便可 将StyleKit类中搜出来的方法,经过IMP调用执行
- (void)drawRect:(CGRect)rect
{
if (self.imageList < self.methodsArray.count) {
SEL paintCodeSelector = NSSelectorFromString(self.methodsArray[self.imageList]);
[StyleKit setDesiredFillColor:self.fillColor];
IMP imp = [[StyleKit class] methodForSelector:paintCodeSelector];
void (*func)(id, SEL) = (void *)imp;
func([StyleKit class], paintCodeSelector);
}
}