在id类型的对象上调用方法

bij*_*jan 1 objective-c

当我试图在id类型的对象上调用一个方法时,我收到一个警告(找不到方法).当然不是,但这不是id对象的意义吗?

有没有办法告诉编译器:
"你现在不是我调用这个方法的对象的类,但不要担心,我确定它确实实现了它!"

dea*_*rne 8

你可以用performSelector

如果你有一个对象类型,id那么使用它也是个好主意respondsToSelector:)

if ([myObject respondsToSelector:@selector(dosomething:)])
    myObject performSelector:@selector(doSomething:) withObject:@"hello"];
Run Code Online (Sandbox Code Playgroud)