网上找的都不好使,那些什么传递函数名称字符串什么的,不是我想要的效果!
简单记录一下:
1.首先定义回调函数:
int myCallback(NSString * str) { //函数形式是这种经典格式
NSLog(@"调用call -> %@",str); //获取到参数并输出
return 10086; //返回值
}
@implementation MyClass
+ (void) getdata:(int(*)(NSString *))mycall //(int (*)(NSString *))为mycall的函数指针类型,int为返回值类型,NSString *是参数类型
{
int ret = mycall(@"传递参数"); //执行回调函数,ret取得返回值
NSLog(@"%d",ret); //取得返回值10086
}
@end
3.测试调用函数:
int main()
{
MyClass *test = [[MyClass alloc] init]; //实例化
[test getdata:(int (*)(NSString *))myCallback]; //调用测试,函数myCallback如果在别的文件中应该#import
return 0;
}