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的其他变体功能,可以用来延时调用和跨线程调用