回调函数在程序世界里随处可见,iPhone中也不例外,但在iPhone中经常会遇到用常规方法无法回调,上一篇文章可以解决此问题,今天再上一种方法,专门的第三方回调函数。
1、在需要回调的类中定义回调:
-(void)DoneAndMessageTo:(NSObject *)cbobject setCallbackFunctionName:(NSString *) selectorname {
callbackfunction = selectorname;
callbackobject = cbobject;
}
2、发出回调:
- (void)someFun{
NSLog(@"some function.");
//发出回调
SEL func = NSSelectorFromString(callbackfunction);
if ([callbackobject respondsToSelector:func]){
[callbackobject performSelector:func];
NSLog(@"DoneAndMessageTo:success");
}else{
NSLog(@"DoneAndMessageTo:failure :%@",callbackfunction);
}
}
3、调用回调:
- (IBAction)sendFun:(id)sender{
testobj = [[test alloc] init];
//调用回调
[testobj DoneAndMessageTo:self setCallbackFunctionName:@"backFun"];
[testobj someFun];
}