小编Stk*_*im1的帖子

NSDefaultRunLoopMode与NSRunLoopCommonModes

亲爱的stackoverflow人,

就像上次一样,我特此提出一个我最近偶然发现的问题.我希望那里的某个人可以对我有所了解.

每当我尝试下载一个大文件的背后UIScrollView,MPMapView或者什么的,下载过程被当我触摸iPhone屏幕停止.值得庆幸的是,Jörn的一篇很棒的博客文章提出了一个替代选项,NSRunLoopCommonModes用于连接.

这让我看看两个模式的细节,NSDefaultRunLoopMode和NSRunLoopCommonModes,但苹果文档并没有好好解释,除了说

NSDefaultRunLoopMode

处理NSConnection对象以外的输入源的模式.这是最常用的运行循环模式.

NSRunLoopCommonModes

使用此值作为模式添加到运行循环的对象由已声明为"常用"模式集的成员的所有运行循环模式监视;有关详细信息,请参阅CFRunLoopAddCommonMode的说明.

CFRunLoopAddCommonMode

源,定时器和观察器被注册到一个或多个运行循环模式,并且仅在运行循环以其中一种模式运行时运行.常用模式是一组运行循环模式,您可以为其定义这些模式共享的一组源,定时器和观察器.例如,不是将源注册到每个特定的运行循环模式,而是可以将其注册到运行循环的公共伪模式,并且它将在共模模式集中的每个运行循环模式中自动注册.同样,当将模式添加到该组共用模式时,已经注册到公共伪模式的任何源,定时器或观察者被添加到新添加的共模.

有谁能用人类语言解释这两个?

iphone multithreading nsrunloop ios

105
推荐指数
1
解决办法
3万
查看次数

标签 统计

ios ×1

iphone ×1

multithreading ×1

nsrunloop ×1