iOS面試題06-應用程序(★★)

2018 iOS面試題系列

一荆忍、NSRunLoop的實現機制,及在多線程中如何使用

NSRunLoop是IOS消息機制的處理模式

  • 1.NSRunLoop的主要作用:控制NSRunLoop里面線程的執(zhí)行和休眠脐湾,在有事情做的時候使當前NSRunLoop控制的線程工作,沒有事情做讓當前NSRunLoop的控制的線程休眠。

  • 2.NSRunLoop 就是一直在循環(huán)檢測稽煤,從線程start到線程end爹谭,檢測
    inputsource(如點擊,雙擊等操作)異步事件蒜埋,檢測timesource同步事件,檢測到輸入源會執(zhí)行處理函數沸柔,首先會產生通知循衰,corefunction向線程添加runloop observers來監(jiān)聽事件,意在監(jiān)聽事件發(fā)生時來做處理褐澎。

  • 3.runloopmode是一個集合会钝,包括監(jiān)聽:事件源,定時器工三,以及需通知的runloop observers

    1. 只有在為你的程序創(chuàng)建次線程的時候迁酸,才需要運行runloop。對于程序的主線程而言俭正,runloop是關鍵部分奸鬓。Cocoa提供了運行主線程runloop的代碼同時也會自動運行runloop。IOS程序UIApplication中的run方法在程序正常啟動的時候就會啟動runloop掸读。如果你使用xcode提供的模板創(chuàng)建的程序串远,那你永遠不需要自己去啟動runloop
    1. 在多線程中,你需要判斷是否需要runloop儿惫。如果需要runloop澡罚,那么你要負責配置runloop并啟動。你不需要在任何情況下都去啟動runloop肾请。比如留搔,你使用線程去處理一個預先定義好的耗時極長的任務時,你就可以毋需啟動runloop铛铁。Runloop只在你要和線程有交互時才需要 催式。

二、IOS7之前,后臺執(zhí)行內容有幾種形式,都是什么

一般的應用在進入后臺的時候可以獲取一定時間來運行相關任務避归,也就是說可以在后臺運行一小段時間(10S左右)荣月。

  1. 后臺播放音樂
  2. 后臺GPS跟蹤
  3. 后臺voip支持

三、簡單說一下 APP的啟動過程,從 main文件開始說起

程序啟動分為兩類:1.有storyboard2.沒有storyboard

  • 有storyboard情況下:
    1.main函數
    2.UIApplicationMain
    創(chuàng)建UIApplication對象
    創(chuàng)建UIApplication的delegate對象
    3.根據Info.plist獲得最主要storyboard的文件名,加載最主要的
    storyboard(有storyboard)
    創(chuàng)建UIWindow
    創(chuàng)建和設置UIWindow的rootViewController
    顯示窗口

  • 沒有storyboard情況下:
    1.main函數
    2.UIApplicationMain
    創(chuàng)建UIApplication對象
    創(chuàng)建UIApplication的delegate對象
    3.delegate對象開始處理(監(jiān)聽)系統事件(沒有storyboard)
    程序啟動完畢的時候, 就會調用代理的application:didFinishLaunchingWithOptions:方法在application:didFinishLaunchingWithOptions:中創(chuàng)建UIWindow創(chuàng)建和設置UIWindow的rootViewController
    顯示窗口


四梳毙、把程序自己關掉和程序進入后臺,遠程推送的區(qū)別
  1. 關掉后不執(zhí)行任何代碼, 不能處理事件
  2. 應用程序進入后臺狀態(tài)不久后轉入掛起狀態(tài)哺窄。在這種狀態(tài)下,應用程序不執(zhí)行任何代碼账锹,并有可能在任意時候從內存中刪除萌业。只有當用戶再次運行此應用,應用才會從掛起狀態(tài)喚醒奸柬,代碼得以繼續(xù)執(zhí)行
    3.或者進入后臺時開啟多任務狀態(tài)生年,保留在內存中,這樣就可以執(zhí)行系統允許的動作
    4.遠程推送是由遠程服務器上的程序發(fā)送到APNS,再由APNS把消息推送至設備上的程序,當應用程序收到推送的消息會自動調用特定的方法執(zhí)行事先寫好的代碼

五廓奕、本地通知和遠程推送通知對基本概念和用法抱婉?

本地通知和遠程推送通知都可以向不在前臺運行的應用發(fā)送消息,這種消息既可能是即將發(fā)生的事件,也可能是服務器的新數據.不管是本地通知還是遠程通知,他們在程序界面的顯示效果相同,都可能顯示為一段警告信息或應用程序圖標上的微章.
本地通知和遠程推送通知的基本目的都是讓應用程序能夠通知用戶某些事情, 而且不需要應用程序在前臺運行.二者的區(qū)別在于本地通知由本應用負責調用,只能從當前設備上的iOS發(fā)出, 而遠程通知由遠程服務器上的程序發(fā)送到APNS,再由APNS把消息推送至設備上的程序


六档叔、如果有人惡意重復注冊賬號,讓我寫一個接口,我怎么防止這樣的事情蒸绩。

使用HTTPS,加時間戳1分鐘內不允許重復發(fā)送, 短信驗證, 判斷手機號段保證號碼正確,不是虛擬號嗎. 保證郵箱,手機號等設備的標識唯一,并且在輸入驗證時判斷,如果多次驗證碼錯誤.可以鎖定賬號或著手機注冊.


七衙四、最常使用的地圖是什么?

國內:百度患亿、高德
國外:mapbox


八传蹈、集成地圖時都使用了哪些技術?

使用地理編碼和反編碼進行地圖定位步藕,查找等功能惦界,大頭針的使用,路線查找咙冗。
如果安卓和iOS用的不是同一個地圖(比如安卓用的百度沾歪,iOS用的高德),需要做一套地圖糾偏(國內的地圖對應的經緯度都是有偏差的乞娄,稱為“火星坐標”)


九、集成地圖有什么用显歧?

可以給用戶更好的體驗仪或,使用蘋果原生地圖在位置定位的時候需要跟后臺的數據進行轉換,容易出錯士骤,因為一般后臺用的都是百度或者高德地圖范删,和蘋果原生地圖的坐標不同,就算轉換后也容易出現偏差


十拷肌、簡單給出購物車的實現思路到旦?

iOS走近商城APP(五 購物車)


十一、分析一下使用手機獲取驗證碼注冊賬號的實現邏輯(給了一個示例圖)巨缘,發(fā)送到手機的驗證碼超過60秒鐘后重新發(fā)送

定義一個 label屬性添忘,賦值為59秒在定義一個 count 設置一個timer每次減少一秒把count-- 再把 count 的值拼接到 label上當 count == 0 的時候在顯示驗證碼輸入


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市若锁,隨后出現的幾起案子搁骑,更是在濱河造成了極大的恐慌,老刑警劉巖又固,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仲器,死亡現場離奇詭異,居然都是意外死亡仰冠,警方通過查閱死者的電腦和手機乏冀,發(fā)現死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洋只,“玉大人辆沦,你說我怎么就攤上這事昼捍。” “怎么了众辨?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵端三,是天一觀的道長。 經常有香客問我鹃彻,道長郊闯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任蛛株,我火速辦了婚禮团赁,結果婚禮上,老公的妹妹穿的比我還像新娘谨履。我一直安慰自己欢摄,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布笋粟。 她就那樣靜靜地躺著怀挠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪害捕。 梳的紋絲不亂的頭發(fā)上绿淋,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音尝盼,去河邊找鬼吞滞。 笑死,一個胖子當著我的面吹牛盾沫,可吹牛的內容都是我干的裁赠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赴精,長吁一口氣:“原來是場噩夢啊……” “哼佩捞!你這毒婦竟也來了?” 一聲冷哼從身側響起蕾哟,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤失尖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后渐苏,有當地人在樹林里發(fā)現了一具尸體掀潮,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年琼富,在試婚紗的時候發(fā)現自己被綠了仪吧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞠眉,死狀恐怖薯鼠,靈堂內的尸體忽然破棺而出择诈,到底是詐尸還是另有隱情,我是刑警寧澤出皇,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布羞芍,位于F島的核電站,受9級特大地震影響郊艘,放射性物質發(fā)生泄漏荷科。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一纱注、第九天 我趴在偏房一處隱蔽的房頂上張望畏浆。 院中可真熱鬧,春花似錦狞贱、人聲如沸刻获。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝎毡。三九已至,卻和暖如春氧枣,著一層夾襖步出監(jiān)牢的瞬間沐兵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工挑胸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痒筒,地道東北人宰闰。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓茬贵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親移袍。 傳聞我的和親對象是個殘疾皇子解藻,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,139評論 30 470
  • 1. NSRunLoop的實現機制,及在多線程中如何使用葡盗? NSRunLoop是iOS消息機制的處理模式 NSRu...
    KyneChen閱讀 398評論 0 1
  • 翻譯來源: RunLoops Run Loops RunLoops是與線程緊密相關的基礎架構的一部分螟左,簡稱運行循環(huán)...
    AlexCorleone閱讀 567評論 0 1
  • 1,NSObject中description屬性的意義觅够,它可以重寫嗎?答案:每當 NSLog(@"")函數中出現 ...
    eightzg閱讀 4,143評論 2 19
  • 作者: 綠意 微信號:lvyi973965 《向前一步》作者:謝麗爾.桑德...
    f7d01673dcd6閱讀 483評論 0 1