【发布时间】:2016-11-30 03:05:58
【问题描述】:
当我尝试使用 IMP 时如何转换变量类型?
Person.m
-(void)priFunc:(NSString *)str{
NSLog(@"%@",str);
}
我用IMP get priFunc,然后我想实现这个功能
main.m
...
IMP imp = method_getImplementation(method);
typedef void(*fn)(id,SEL,char *);
fn f = (fn)imp;
f(person,sel,"Jason");
问题是 Person.m 中变量 str 的类型是 NSString,但指针 fn 中变量的类型是 char* 。虽然编译成功了,但是程序会报(lldb)错误。
【问题讨论】:
标签: objective-c