Run loopsæ¯çº¿ç¨çåºç¡æ¶æé¨åãä¸ä¸ªrun loopå°±æ¯ä¸ä¸ªäºä»¶å¤ç循ç¯ï¼ç¨æ¥ä¸åçè°é
å·¥ä½ä»¥åå¤çè¾å
¥äºä»¶ã使ç¨run loopçç®çæ¯ä½¿ä½ ç线ç¨å¨æå·¥ä½çæ¶åå·¥ä½ï¼æ²¡æçæ¶åä¼ç ã
Run loopç管ç并ä¸å®å
¨æ¯èªå¨çãä½ ä»å¿
é¡»è®¾è®¡ä½ ç线ç¨ä»£ç 以å¨éå½çæ¶åå¯å¨run loop并æ£ç¡®ååºè¾å
¥äºä»¶ãCocoaåCoreFundationé½æä¾äºrun loop对象æ¹ä¾¿é
ç½®å管ç线ç¨çrun loopãä½ å建çç¨åºä¸éè¦æ¾ç¤ºçå建run loopï¼æ¯ä¸ªçº¿ç¨ï¼å
æ¬ç¨åºç主线ç¨ï¼main threadï¼é½æä¸ä¹ç¸åºçrun loop对象ãä½æ¯ï¼èªå·±å建ç次线ç¨æ¯éè¦æå¨è¿è¡run loopçãå¨carbonåcocoaç¨åºä¸ï¼ç¨åºå¯å¨æ¶ï¼ä¸»çº¿ç¨ä¼èªè¡å建并è¿è¡run loopã
æ¥ä¸æ¥çé¨åå°ä¼è¯¦ç»ä»ç»run loop以åå¦ä½ä¸ºä½ çç¨åºç®¡çrun loopãå
³äºrun loop对象å¯ä»¥åé
sdkææ¡£ã
解æRun Loop
run loopï¼é¡¾åæä¹ï¼å°±æ¯ä¸ä¸ªå¾ªç¯ï¼ä½ ç线ç¨å¨è¿éå¼å§ï¼å¹¶è¿è¡äºä»¶å¤çç¨åºæ¥ååºè¾å
¥äºä»¶ãä½ ç代ç è¦æå®ç°å¾ªç¯é¨åçæ§å¶è¯å¥ï¼æ¢è¨ä¹å°±æ¯è¦æwhileæforè¯å¥ãå¨run loopä¸ï¼ä½¿ç¨run loop对象æ¥è¿è¡äºä»¶å¤ç代ç ï¼ååºæ¥æ¶å°çäºä»¶ï¼å¯å¨å·²ç»å®è£
çå¤çç¨åºã
Run loopå¤ççè¾å
¥äºä»¶æ两ç§ä¸åçæ¥æºï¼è¾å
¥æºï¼input sourceï¼åå®æ¶æºï¼timer sourceï¼ãè¾å
¥æºä¼ éå¼æ¥æ¶æ¯ï¼é常æ¥èªäºå
¶ä»çº¿ç¨æè
ç¨åºãå®æ¶æºåä¼ éåæ¥æ¶æ¯ï¼å¨ç¹å®æ¶é´æè
ä¸å®çæ¶é´é´éåçã两ç§æºçå¤çé½ä½¿ç¨ç¨åºçæä¸ç¹å®å¤çè·¯å¾ã
å¾1ï¼1æ¾ç¤ºäºrun loopçç»æ以ååç§è¾å
¥æºãè¾å
¥æºä¼ éå¼æ¥æ¶æ¯ç»ç¸åºçå¤çç¨åºï¼å¹¶è°ç¨runUntilDateï¼æ¹æ³éåºãå®æ¶æºåç´æ¥ä¼ éæ¶æ¯ç»å¤çç¨åºï¼ä½å¹¶ä¸ä¼éåºrun loopã
温馨提示:答案为网友推荐,仅供参考