下面两句代码,在执行上有什么不一样的地方吗(都在主线程中)?
[self performSelector:@selector(test2)]; && [self test2];
1) 有一点是肯定的, performSelector的话一定是在运行时候才能发现(此时程序崩溃)
大概这也是为什么写delegate的时候,为保证程序健壮性,会使用如下函数检验
1.
- (
BOOL
)respondsToSelector:(
SEL
)aSelector;
而使用performSelector时候, 可以不用import头文件,对包含方法的 对象 调用performSelector即可。