首页 > 其他 > 详细

关于performSelector afterDelay:0 的使用

时间:2021-07-02 00:48:29      阅读:22      评论:0      收藏:0      [点我收藏+]

self performSelector:@selector(doSomeThing) withObject:nil afterDelay:sec];

 这个方法主要用于在当前线程延迟sec秒执行loadPullTableView方法. 如果sec!=0, 我们很好理解. 

但是当sec==0的时候, 会有一些特殊的含义.

官方解释是==0的时候, 不意味着立即执行, 还是会加入到runloop中, 会尽快执行. 

我们可以在viewDidLoad放一个这个方法, afterDelay:0. 

然后分别在 viewDidLoad,viewWillAppear,viewDidappear和这个要执行方法本身做一个log.

你会发现这个方法是最后执行的, 其实是放在当前runloop里面最后执行的

这样的话, 如果我们需要绘制一个界面, 而这个界面需要依赖现有viewController的界面数据, 

我们可以使用这个方法, 因为执行这个方法的时候, viewController的view已经绘制完成了。

 

参考:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/RunLoopManagement/RunLoopManagement.html

https://stackoverflow.com/questions/14717691/performselector-with-delay-0

技术分享图片

 

 



关于performSelector afterDelay:0 的使用

原文:https://www.cnblogs.com/fakeCoder/p/14960085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!