1、是一种非阻塞的执行方式
2、暂时未找到取消执行的方法。
我们可以看到无论怎么设置延时时间ccdvvv总是先于delayMethod打印出来,这个跟Block方法的调用机制有关这种方式的延时只是针对这个方法本身的函数而言的。1、此方式要求必须在主线程中执行否则无效。
1、此方式在主线程和子线程中均可执行
2、是一种阻塞的执行方式,建方放到子线程中以免卡住界面 3、没有找到取消执行的方法。
1、此方式在可以在参数中选择执行的线程
2、是一种非阻塞的执行方式, 3、没有找到取消执行的方法
这种方法的缺点:每次要为延时寫一个方法
2.使用类别用BOLCK执行
版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/
师弟疑问之延迟某个方法的执行怎么弄
2、四种方法的具体使用
注:此方法是一种非阻塞的执行方式未找到取消执行的方法。
注:此方法是一种非阻塞的执行方式
取消执行方法:- (void)invalidate;即可
注:此方法是一种阻塞执行方式,建议放在子线程中执行否則会卡住界面。但有时还是需要阻塞执行如进入欢迎界面需要沉睡3秒才进入主界面时。没有找到取消执行方式
注:此方法可以在参数Φ选择执行的线程,是一种非阻塞执行方式没有找到取消执行方式。
3、你所说的阻塞与非阻塞的意思是什么意思
意思是执行了延迟函數这句代码例如NSThread的sleepForTimeInterval后是不是立马执行,这句代码后面的语句
例子:
从输出结果就可以看出,performSelector:这句执行完后没有立即执行延迟方法,而昰立即执行下面的语句也就是NSThread的sleep方法,然后在输出delayMethod