the performSelector: method allows you to send messages that aren’t determined until runtime.
比如:
id instance = instance_from_other_module();
[instance call_undeclared_method]; // 有编译警告
[instance performSelector:@selector(call_undeclared_method)];
用这个可以避免编译警告。
此外,performSelector的其他变体功能,可以用来延时调用和跨线程调用。