iOS面試總結(jié)


為什么在主線程更新UI?

主要原因還是為了線程的安全,但是UIkit的線程不是安全的,假如在兩個線程中設(shè)置同一張背景圖片的話灼卢,這個圖片當被釋放的時候就會被釋放兩次,當前這個線程設(shè)置圖片地址會把上一個線程賦值的圖片地址給覆蓋来农,因為他們設(shè)置的是同一個地址鞋真,這樣就會出現(xiàn)野指針錯誤,會發(fā)生程序崩潰沃于。雖然apple對大部分的繪圖方法改成線程安全可用涩咖,但是官方還是建議我們在主線程進行UI更新,這樣就會保證線程安全繁莹。

分別描述類別(categories)和延展(extensions)是什么抠藕?以及兩者的區(qū)別?繼承和類別在實現(xiàn)中有何區(qū)別蒋困?為什么Category只能為對象添加方法,卻不能添加成員變量敬辣?

類別:在沒有原類.m文件的基礎(chǔ)上雪标,給該類添加方法;

延展:一種特殊形式的類別溉跃,主要在一個類的.m文件里聲明和實現(xiàn)村刨。延展的作用就是給某個類添加私有方法和私有變量。

兩個的區(qū)別:

? ? * 延展可以添加屬性并且它添加的方法是必須要實現(xiàn)的撰茎。延展可以認為是一個私有的類目嵌牺。

? ? * 類別可以在不知道不改變原來代碼的情況下往里面添加新的方法,只能添加不能修改和刪除。

? ? * 并且如果類別和原來類中的方法產(chǎn)生名稱沖突逆粹,則類別將覆蓋原來的方法募疮,因為類別具有更高的優(yōu)先級。

? ? * 繼承可以增加僻弹,修改刪除方法阿浓,添加屬性。

Category只能為對象添加方法蹋绽,卻不能添加成員變量的原因:如果可以添加成員變量芭毙,添加的成員變量沒有辦法初始化。

nil卸耘、Nil退敦、NULL和NSNull區(qū)別

NULL是宏,是對于C語言指針而使用的蚣抗,表示空指針

nil是宏侈百,是對于Objective-C中的對象而使用的,表示對象為空

Nil是宏忠聚,是對于Objective-C中的類而使用的设哗,表示類指向空

NSNull是類類型,是用于表示空的占位對象

什么情況使用weak關(guān)鍵字两蟀,相比assign有什么不同网梢?

在ARC中,在有可能出現(xiàn)循環(huán)引用的時候赂毯,往往要通過讓其中一端使用weak來解決战虏,如delegate屬性。自身已經(jīng)對它進行一次強引用党涕,沒有必要再強引用一次烦感,此時也會用weak,自定義IBOutlet控件屬性一般也使用weak

weak此特質(zhì)表明該屬性定義了一種“非擁有關(guān)系”膛堤。為這種屬性設(shè)置新值時手趣,設(shè)置方法既不保留新值,也不釋放舊值肥荔。此特質(zhì)同assign類似绿渣,然而在屬性所指的對象遭到摧毀時,屬性值也會清空燕耿。而assign的“設(shè)置方法”只會執(zhí)行針對“純量類型”的簡單賦值操作中符。assign可以用非OC對象,而weak必須用于OC對象


一個NSObject對象占用多少內(nèi)存誉帅?

一個指針變量所占用的大械砩ⅰ(64bit占8個字節(jié)右莱,32bit占4個字節(jié))。

對象的isa指針指向哪里档插?

instance對象的isa指針指向class對象慢蜓,class對象的isa指針指向meta-class對象,meta-class的isa指針指向基類的meta-class對象阀捅,基類自己的isa指針也指向自己胀瞪。

OC的類信息存放在哪里?

成員變量的具體值存放在instance對象饲鄙。對象方法凄诞,協(xié)議,屬性忍级,成員變量信息存放在class對象帆谍。類方法信息存放在meta-class對象。



Push Notification是如何工作的

推送通知分為兩種轴咱,一個是本地推送汛蝙,一個是遠程推送

本地推送:不需要聯(lián)網(wǎng)也可以推送,是開發(fā)人員在APP內(nèi)設(shè)定特定的時間來提醒用戶干什么

遠程推送:需要聯(lián)網(wǎng)朴肺,用戶的設(shè)備會與蘋果服務(wù)器形成一個長鏈接窖剑,用戶設(shè)備會發(fā)送uuid和Bundle identifier給蘋果服務(wù)器,蘋果服務(wù)器會加密生成一個deviceToken給用戶設(shè)備戈稿,然后設(shè)備會將deviceToken發(fā)送給APP的服務(wù)器西土,服務(wù)器會將deviceToken存進他們的數(shù)據(jù)庫,這時候如果有人發(fā)送消息給我鞍盗,服務(wù)器端就會去查詢我的deviceToken需了,然后將deviceToken和要發(fā)送的信息發(fā)送給蘋果服務(wù)器,蘋果服務(wù)器通過deviceToken找到我的設(shè)備并將消息推送到我的設(shè)備上般甲。這里還有個情況是如果APP在線肋乍,那么APP服務(wù)器會與APP產(chǎn)生一個長鏈接,這時候APP服務(wù)器會直接通過deviceToken將消息推送到設(shè)備上敷存。

控制器View的生命周期

loadView: 加載view

viewDidLoad:? ? ? ? ? ? ? ? ? view加載完畢

viewWillAppear:? ? ? ? ? ? ? 控制器的view將要顯示

viewWillLayoutSubviews: 控制器的view將要布局子控件

viewDidLayoutSubviews: 控制器的view布局子控件完成

viewDidAppear:? ? ? ? ? ? ? ? 控制器的view完全顯示

viewWillDisappear:? ? ? ? 控制器的view即將消失的時候

viewDidDisappear:? ? ? ? 控制器的view完全消失的時候

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末墓造,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锚烦,更是在濱河造成了極大的恐慌觅闽,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挽牢,死亡現(xiàn)場離奇詭異,居然都是意外死亡摊求,警方通過查閱死者的電腦和手機禽拔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人睹栖,你說我怎么就攤上這事硫惕。” “怎么了野来?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵恼除,是天一觀的道長。 經(jīng)常有香客問我曼氛,道長豁辉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任舀患,我火速辦了婚禮徽级,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘聊浅。我一直安慰自己餐抢,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布低匙。 她就那樣靜靜地躺著旷痕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顽冶。 梳的紋絲不亂的頭發(fā)上欺抗,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音渗稍,去河邊找鬼佩迟。 笑死,一個胖子當著我的面吹牛竿屹,可吹牛的內(nèi)容都是我干的报强。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拱燃,長吁一口氣:“原來是場噩夢啊……” “哼秉溉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碗誉,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤召嘶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后哮缺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弄跌,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年尝苇,在試婚紗的時候發(fā)現(xiàn)自己被綠了铛只。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埠胖。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖淳玩,靈堂內(nèi)的尸體忽然破棺而出直撤,到底是詐尸還是另有隱情,我是刑警寧澤蜕着,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布谋竖,位于F島的核電站,受9級特大地震影響承匣,放射性物質(zhì)發(fā)生泄漏蓖乘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一悄雅、第九天 我趴在偏房一處隱蔽的房頂上張望驱敲。 院中可真熱鬧,春花似錦宽闲、人聲如沸众眨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娩梨。三九已至,卻和暖如春览徒,著一層夾襖步出監(jiān)牢的瞬間狈定,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工习蓬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纽什,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓躲叼,卻偏偏與公主長得像芦缰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枫慷,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,100評論 1 32
  • 2017年iOS面試總結(jié) 1让蕾、為什么說Objective-C是一門動態(tài)語言? 答:Objective-C類的類型和...
    我叫王可可閱讀 331評論 0 1
  • 一或听、深復(fù)制和淺復(fù)制的區(qū)別探孝? 1、淺復(fù)制:只是復(fù)制了指向?qū)ο蟮闹羔樣桑磧蓚€指針指向同一塊內(nèi)存單元顿颅!而不復(fù)制指向?qū)ο蟮?..
    iOS_Alex閱讀 1,374評論 1 27
  • 時間:清晨七點 地點:小區(qū) 構(gòu)圖:X結(jié)構(gòu) 線條延伸 寓意:時光隧道 by iphone 我們 漫步在 時光的隧道 ...
    雲(yún)端峯影閱讀 332評論 0 2
  • 梨花如雪,簇擁開放足丢,擠滿枝頭粱腻,在藍天的掩映下格外純凈绍填,幾處白云悠哉悠哉。悠遠空靈的樂聲如潺潺溪流栖疑,正應(yīng)了“大弦嘈嘈...
    風一樣y自由閱讀 1,326評論 0 2