CFRunloop源码解析-----__CFRunLoopRun初始化纠错认知

本文解析了__CFRunLoopRun源码,揭示了RunLoop至少执行一次source、observer、timer、block检查的机制,纠正了网络上关于RunLoop运行逻辑的误解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、__CFRunLoopRun源码简略如下:

static int32_t __CFRunLoopRun(CFRunLoopRef rl, CFRunLoopModeRef rlm, CFTimeInterval seconds, Boolean stopAfterHandle, CFRunLoopModeRef previousMode) {

int32_t retVal = 0;//默认值

do {

/** 此处为处理:source、observer、timer、block的逻辑 ***/

    } while (0 == retVal);

return retVal;

}


二、结论如下:

    当runloop运行起来时,至少做一次source、observer、timer、block的检查、执行--换句话说:runloop至少执行一次

    当下网络上流行说法:当runloop中未注册source、observer、timer、block时,runloop运行起来直接退出。

    因此此流行说法是不正确的!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值