NSRunloop关系篇
1.NSRunloop 与 NSTimer
.https://blog.csdn.net/u014795020/article/details/72084735
.http://www.360doc.com/content/16/1013/16/11764545_598159238.shtml
1.NSRunloop与NSTimer
主线程还是子线程会把timer自动添加到当前runloop.
timer停止,model中没有事件,runloop 会停止,线程也就停止了。
//www.greatytc.com/p/b5c27669e2c1
http://www.360doc.com/content/16/1013/16/11764545_598159238.shtml
RunLoop与NSURLConnection
https://blog.csdn.net/weixin_34179968/article/details/88004386
AFNetworking3.0后为什么不再需要常驻线程?
https://blog.csdn.net/enuola/article/details/8077918
http://www.pianshen.com/article/7813250945/
AFN 的做法是把网络请求的发起和解析都放在同一个子线程中进行,但由于子线程默认不开启 runloop,它会向一个 C语言程序那样在运行完所有代码后退出线程。而网络请求是异步的,这会导致获取到请求数据时,线程已经退出,代理方法没有机会执行。因此,AFN 的做法是使用一个 runloop 来保证线程不死~
1.网络也是runloop mode的一个事件,Source0,当RunloopMode里面执行完,runloop 停止,线程停止。
3.NSConnection:
https://blog.csdn.net/u012186949/article/details/38047109
4.NSUrlSession:
https://blog.csdn.net/u012361288/article/details/54607551
2.performSelector里的aSelector方法被延迟调用问题。
- (void)performSelector:(SEL)aSelector withObject:(id)arg; afterDelay:(NSTimeInterval)delay;
这个方法其实是增加了一个定时器,而这时aSelector应该是被添加到了队列的最后面,所以要等当前调用此方法的函数执行完毕后,selector方法才会执行。