ios runloop面試題 runloop是什么?
runloop是什么?Runloop是事件接收和分發(fā)機(jī)制的實(shí)現(xiàn)。運(yùn)行循環(huán)是線程的基礎(chǔ)結(jié)構(gòu)部分。運(yùn)行循環(huán)是一個(gè)事件處理循環(huán),用于連續(xù)分配工作和處理輸入事件。使用run-loop的目的是讓線程在工作時(shí)工作
runloop是什么?
Runloop是事件接收和分發(fā)機(jī)制的實(shí)現(xiàn)。運(yùn)行循環(huán)是線程的基礎(chǔ)結(jié)構(gòu)部分。運(yùn)行循環(huán)是一個(gè)事件處理循環(huán),用于連續(xù)分配工作和處理輸入事件。使用run-loop的目的是讓線程在工作時(shí)工作,在不工作時(shí)休眠。運(yùn)行循環(huán)的管理并不是完全自動(dòng)的。您仍然需要設(shè)計(jì)線程代碼,以便在正確的時(shí)間啟動(dòng)run循環(huán)并正確響應(yīng)輸入事件。cocoa和corefoundation都提供了運(yùn)行循環(huán)對(duì)象,以便于配置和管理線程運(yùn)行循環(huán)。您創(chuàng)建的程序不需要顯示創(chuàng)建的運(yùn)行循環(huán);每個(gè)線程(包括程序的主線程)都有一個(gè)相應(yīng)的運(yùn)行循環(huán)對(duì)象。但是,我們自己創(chuàng)建的次線程需要手動(dòng)運(yùn)行run循環(huán)。在carbon和cocoa程序中,當(dāng)程序啟動(dòng)時(shí),主線程將自己創(chuàng)建并運(yùn)行run循環(huán)。
iOS關(guān)閉后臺(tái)刷新,有什么好處與弊端?
您必須在購買iPhone的第一天關(guān)閉“后臺(tái)刷新”。畢竟它是耗電大戶,它的使用會(huì)對(duì)我們手機(jī)的電池壽命產(chǎn)生很大的影響。那么,什么是“背景刷新”?你知道嗎?
蘋果后臺(tái)應(yīng)用程序刷新意味著我們打開后,手機(jī)程序會(huì)繼續(xù)運(yùn)行,并且可以及時(shí)更新我們應(yīng)用程序的內(nèi)容,甚至一些定位軟件也可以直接更新位置。我們知道iPhone的背景是假的。你什么意思?如果你打開兩個(gè)軟件,其中一個(gè)在后臺(tái),但是iPhone的運(yùn)行機(jī)制會(huì)凍結(jié)后臺(tái)應(yīng)用。如果關(guān)閉后臺(tái)應(yīng)用程序刷新,它將不會(huì)運(yùn)行;如果打開后臺(tái)應(yīng)用程序刷新,后臺(tái)將刷新程序并更新信息。
解釋不清楚?沒關(guān)系,舉個(gè)例子吧:你的酷狗應(yīng)用程序正在下載一首歌,但是當(dāng)你切換到微信時(shí),后臺(tái)會(huì)自動(dòng)刪除下載動(dòng)作。如果你打開“背景刷新”,這個(gè)問題就會(huì)得到解決。
當(dāng)微信運(yùn)行時(shí),你可能會(huì)感覺不對(duì),因?yàn)榧词龟P(guān)閉后臺(tái),它仍然會(huì)推送消息?確實(shí),當(dāng)您關(guān)閉后臺(tái)刷新時(shí),它實(shí)際上正在運(yùn)行,但它依賴于推送模式來傳輸信息。你收到的不是完整的信息。只有在打開后才會(huì)加載。但是,當(dāng)后臺(tái)應(yīng)用程序被刷新并打開時(shí),情況正好相反。您的信息已被程序接受。