iOS日常撿漏

1.NSRunLoop

今天做項(xiàng)目的時候豪椿,要想開啟一個計(jì)時器監(jiān)控系統(tǒng)的時間篮昧,用到了NSRunLoop,一般來說暇昂,是用CFRunLoopGetCurrent這個函數(shù)來獲取當(dāng)前線程的runLoop的。但是如果應(yīng)用在沒有開啟子線程的情況下伴嗡,那么當(dāng)前線程也就是主線程急波。也就是說CFRunLoopGetCurrent函數(shù)獲取的runLoop()是當(dāng)前線程的,也就是主線程的瘪校。在這種情況下澄暮,一旦run后,根本關(guān)閉不了阱扬,因?yàn)楂@取到的是的runLoop(假設(shè)是A)泣懊,是主線程的runLoop。而你想要關(guān)閉的是子線程的runLoop(假設(shè)是B)麻惶,根本都沒有獲取到子線程的runLoop馍刮。所以關(guān)閉的代碼并沒有起到任何作用。再說用踩,也沒有權(quán)限停止主線程的runLoop,在程序沒有退出之前渠退,是沒法關(guān)閉停止主線程的忙迁。

參考文獻(xiàn):NSThread 脐彩、NSRunLoop 和 Dispatch Queue - kmyhy的專欄 - 博客頻道 - CSDN.NET

后來的做法是:新開了一個線程(子線程),每個線程中都自帶RunLoop姊扔,用CFRunLoopGetCurrent()函數(shù)可以獲得當(dāng)前線程的RunLoop惠奸。(這樣就可以保證獲取的是不會是主線程的runLoop)

ps:如果RunLoop中沒有任何源,RunLoop不會運(yùn)行恰梢。我們可以為這個RunLoop添加新的源佛南。

開啟子線程
在子線程開啟計(jì)時


停止子線程的runLoop

2.

會發(fā)現(xiàn)頁面跳轉(zhuǎn)不了,并出現(xiàn)這些警告:Only run on the main thread

原因:真機(jī)環(huán)境下嵌言,UI的處理必須是單線程的嗅回,所以當(dāng) 在一個已存在的UI上切換新的UI時,會出現(xiàn)Only run on the main thread 錯誤摧茴。告訴你绵载,只能在主線程上運(yùn)行。

因?yàn)槲议_啟的是一個子線程苛白,利用子線程監(jiān)聽到一定的時間后娃豹,就進(jìn)行賬號主線,從主菜單頁面強(qiáng)行跳轉(zhuǎn)到登錄頁面购裙。所以產(chǎn)生這樣的警告懂版。

解決辦法:在單線程里面操作,進(jìn)行跳轉(zhuǎn):dispatch_async(dispatch_get_main_queue(), ^{

LoginViewController *loginController = [[LoginViewController alloc]init];

[self presentViewController:loginController animated:NO completion:nil];

});

3.

盡管如此躏率,你會發(fā)現(xiàn)還是無法跳轉(zhuǎn)躯畴,會出現(xiàn)這樣的警告:

Warning: Attempt to present <loginViewController>on <mainMenuController>??which is already presenting (null)

出現(xiàn)這樣的警告民鼓,首先是因?yàn)槲覐闹鞑藛雾撁妫╩ainMenuController)到登陸頁面(loginViewController)不是push過去的,而是presenting過去的蓬抄。而此時在主菜單頁面上剛好有一個選擇的彈框摹察。如下圖:


彈框的圖片

而這個彈框也是presenting到主菜單頁面的。所以必須先要關(guān)掉(diss)這個彈框倡鲸,才能跳轉(zhuǎn)到登錄頁面供嚎。如下圖:

dismiss的圖片

先關(guān)掉這個,就可以了峭状。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末克滴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子优床,更是在濱河造成了極大的恐慌劝赔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胆敞,死亡現(xiàn)場離奇詭異着帽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)移层,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門仍翰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人观话,你說我怎么就攤上這事予借。” “怎么了频蛔?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵灵迫,是天一觀的道長。 經(jīng)常有香客問我晦溪,道長瀑粥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任三圆,我火速辦了婚禮狞换,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嫌术。我一直安慰自己哀澈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布度气。 她就那樣靜靜地躺著割按,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磷籍。 梳的紋絲不亂的頭發(fā)上适荣,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天现柠,我揣著相機(jī)與錄音,去河邊找鬼弛矛。 笑死够吩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丈氓。 我是一名探鬼主播周循,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼万俗!你這毒婦竟也來了湾笛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤闰歪,失蹤者是張志新(化名)和其女友劉穎嚎研,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體库倘,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡临扮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了教翩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杆勇。...
    茶點(diǎn)故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖迂曲,靈堂內(nèi)的尸體忽然破棺而出靶橱,到底是詐尸還是另有隱情,我是刑警寧澤路捧,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站传黄,受9級特大地震影響杰扫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膘掰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一章姓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧识埋,春花似錦凡伊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惠豺,卻和暖如春银还,著一層夾襖步出監(jiān)牢的瞬間风宁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工蛹疯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戒财,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓捺弦,卻偏偏與公主長得像饮寞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子列吼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容

  • ======================= 前言 RunLoop 是 iOS 和 OSX 開發(fā)中非陈罴剩基礎(chǔ)的一個...
    i憬銘閱讀 871評論 0 4
  • runtime 和 runloop 作為一個程序員進(jìn)階是必須的,也是非常重要的冈欢, 在面試過程中是經(jīng)常會被問到的歉铝, ...
    SOI閱讀 21,791評論 3 63
  • 1.自定義控件 a.繼承某個控件 b.重寫initWithFrame方法可以設(shè)置一些它的屬性 c.在layouts...
    圍繞的城閱讀 3,363評論 2 4
  • 轉(zhuǎn)載:http://www.cocoachina.com/ios/20150601/11970.html RunL...
    Gatling閱讀 1,436評論 0 13
  • “沫沫,該起床了凑耻,飯快要做好了”夏媽的聲音伴著炒菜的聲音傳來太示。 “恩,知道了媽媽”夏沫揉揉自己的睡眼香浩,看一眼手機(jī)类缤,...
    真的沒名字了閱讀 195評論 0 0