面試題總結(jié)

1.OC的動(dòng)態(tài)運(yùn)行時(shí)語(yǔ)言的原因


1)多態(tài)將數(shù)據(jù)類(lèi)型的確定由編譯時(shí),推遲到了運(yùn)行時(shí)

多態(tài):不同對(duì)象以自己的方式響應(yīng)相同的消息的能力

2.類(lèi)變量的@protected,@private,@public,@package的 聲明各有什么含義


主要是時(shí)類(lèi)成員的作用域不同;

1)@protected(自身類(lèi)和其子類(lèi),外界不可訪問(wèn),但是能繼承),系統(tǒng)默認(rèn)的類(lèi)變量聲明;

2)@private (自身類(lèi),外界既不能訪問(wèn),也不能繼承)

3)@public(可以在任何地方被訪問(wèn),外界既能訪問(wèn),又可以繼承)

4)@package(作用在某個(gè)框架內(nèi))

3.關(guān)于OC中的內(nèi)存管理機(jī)制,release與dealloc的區(qū)別? assign,retain,copy,nonatomic,atomic,strong,weak屬性的作用?


OC使用引用計(jì)數(shù)機(jī)制管理對(duì)象,當(dāng)對(duì)象使用了alloc,Mutable copy,retain時(shí),必須使用相對(duì)應(yīng)的realease或者autorelease(即自己生成的對(duì)象自己持有,不需要時(shí)自己釋放)?????????????????????????????????? 生成并持有對(duì)象(alloc,mutableCopy,retain)????????????????????????????

??????????????????????????????????????? 持有對(duì)象(retain)

??????????????????????????????????????? 釋放對(duì)象(release)

???????????????????????????????????????? 廢棄對(duì)象(dealloc)

nonatomic(不考慮線(xiàn)程安全);atomic(默認(rèn),考慮線(xiàn)程安全)

strong(默認(rèn)):ARC和MRC下retain一樣; weak?? ARC下和assin類(lèi)似,當(dāng)指向的內(nèi)存釋放掉時(shí)自動(dòng)置為空,防止野指針出現(xiàn)

4.應(yīng)用程序按home鍵進(jìn)入后臺(tái)時(shí)的生命周期? 從后臺(tái)回到前臺(tái)時(shí)的生命周期?



5.關(guān)于響應(yīng)鏈



6.如何優(yōu)化冒泡排序




7.實(shí)現(xiàn)離線(xiàn)發(fā)QQ




8.如圖




9.socket中TCP的三次握手











TCP:安全的協(xié)議蜕企,能保證數(shù)據(jù)順序和正確性,服務(wù)器和客戶(hù)端能隨時(shí)互發(fā)數(shù)據(jù)。如果服務(wù)器要主動(dòng)發(fā)送數(shù)據(jù)給客戶(hù)端,可以用這個(gè)協(xié)議

UDP:非安全的協(xié)議敬拓,容易丟失數(shù)據(jù)被冒,一般用于聯(lián)機(jī)對(duì)戰(zhàn)的游戲

XMPP:基于XML通訊的協(xié)議,基于TCP發(fā)送XML數(shù)據(jù)嫡意,一般用于即時(shí)通訊(比如QQ馏艾、微信)

HTTP:一般用于非實(shí)時(shí)連接的請(qǐng)求劳曹,只有客戶(hù)端主動(dòng)向服務(wù)器發(fā)送請(qǐng)求時(shí)奴愉,服務(wù)器才能返回?cái)?shù)據(jù)給客戶(hù)端

SOCKET:套接口,可以使用TCP/UDP/XMPP通訊


6.KVO的內(nèi)部實(shí)現(xiàn)基理(類(lèi)中的isa指針指向發(fā)生改變)

1>KVO是基于runtime機(jī)制實(shí)現(xiàn)的

2>當(dāng)某個(gè)子類(lèi)的對(duì)象第一次被觀察時(shí)铁孵,系統(tǒng)會(huì)在運(yùn)行期間動(dòng)態(tài)的創(chuàng)建該類(lèi)的一個(gè)派生類(lèi)躁劣,在這個(gè)派生類(lèi)中重寫(xiě)基類(lèi)中的任何被觀察屬性的setter方法。

派生類(lèi)在重寫(xiě)的setter方法中實(shí)現(xiàn)真正的通知機(jī)制(Person -> NSKVONotifying Person)


7.是否可以把比較耗時(shí)的操作放在NSNotificationCenter中库菲?

是否可以取決于我們要在哪里發(fā)送通知(因?yàn)榻邮芡ㄖ獣r(shí)執(zhí)行的方法所在線(xiàn)程和發(fā)送通知所在線(xiàn)程是一致的);

1>如果在異步線(xiàn)程發(fā)送通知志膀,那么可以在接收通知的方法中執(zhí)行比較耗時(shí)的操作熙宇;

2>如果在主線(xiàn)程中發(fā)送通知,那么就不能執(zhí)行比較耗時(shí)的操作溉浙;


8.runtime 的概念烫止?runtime的用法?

1> runtime是一套底層的C語(yǔ)言API(包含很多強(qiáng)大實(shí)用的C語(yǔ)言數(shù)據(jù)類(lèi)型戳稽、C語(yǔ)言函數(shù))

2> 實(shí)際上馆蠕,平時(shí)我們編寫(xiě)的OC代碼,底層都是基于runtime實(shí)現(xiàn)的

* 也就是說(shuō)惊奇,平時(shí)我們編寫(xiě)的OC代碼互躬,最終都是轉(zhuǎn)成了底層的runtime代碼(C語(yǔ)言代碼)

1> 能動(dòng)態(tài)產(chǎn)生一個(gè)類(lèi)、一個(gè)成員變量颂郎、一個(gè)方法

2> 能動(dòng)態(tài)修改一個(gè)類(lèi)吼渡、一個(gè)成員變量、一個(gè)方法

3> 能動(dòng)態(tài)刪除一個(gè)類(lèi)乓序、一個(gè)成員變量寺酪、一個(gè)方法

方法實(shí)例:動(dòng)態(tài)的修改系統(tǒng)方法

1>修改[UIImage ImageNamed:]的系統(tǒng)方法(使其能根據(jù)系統(tǒng)版本的不同,顯示不同的圖片)

2>重寫(xiě)NSMutableArray的addObject:方法替劈,使其在添加空對(duì)象的時(shí)候不會(huì)使程序崩潰寄雀;重寫(xiě)NSArray的ObjectAtIndex:方法,使其即使出現(xiàn)數(shù)組越界也不會(huì)發(fā)生崩潰陨献。

a)對(duì)交換系統(tǒng)方法和自定義方法的方法進(jìn)行封裝

b)重寫(xiě)系統(tǒng)方法并進(jìn)行交換


c)在ViewDidLoad中直接調(diào)用系統(tǒng)方法盒犹,runtime機(jī)制會(huì)在運(yùn)行時(shí)直接進(jìn)行類(lèi)方法和自定義方法的交換


9.父子控制器的重要性;

當(dāng)我們將其他控制器添加到主控制器時(shí)眨业,如果沒(méi)有確定主控制器與填入的控制器的復(fù)制關(guān)系阿趁,即:

[self.parentViewController? addChildViewController:childViewController]

則子控制器獲取不了主控制器的屏幕旋轉(zhuǎn)方法,也無(wú)法獲得主控制器的self.NavigationController 完成不了控制器之間的跳轉(zhuǎn)坛猪,因此當(dāng)將其他控制器添加到一個(gè)主控制器中時(shí)脖阵,確定子控制器與主控制器間的父子關(guān)系非常重要。

10.如果后期需要增加數(shù)據(jù)庫(kù)中的字段怎么實(shí)現(xiàn)墅茉,如果不使用CoreData呢命黔?

編寫(xiě)SQL語(yǔ)句來(lái)操作原來(lái)表中的字段

1>增加表字段

ALTER TABLE 表名 ADD COLUMN 字段名 字段類(lèi)型呜呐;

2>刪除表字段

ALTER TABLE 表名 DROP COLUMN 字段名;

3>修改表字段

ALTER TABLE 表名 RENAME COLUMN 舊字段名 TO 新字段名


11.關(guān)于tableview的優(yōu)化問(wèn)題

UITableView的優(yōu)化主要從三個(gè)方面入手:

1》提前計(jì)算并緩存好高度(布局)悍募,因?yàn)閔eightForRowAtIndexPath:是調(diào)用最頻繁的方法蘑辑;

2》異步繪制,遇到復(fù)雜界面坠宴,遇到性能瓶頸時(shí)洋魂,可能就是突破口;

3》滑動(dòng)時(shí)按需加載喜鼓,這個(gè)在大量圖片展示副砍,網(wǎng)絡(luò)加載的時(shí)候很管用!(SDWebImage已經(jīng)實(shí)現(xiàn)異步加載庄岖,配合這條性能杠杠的)豁翎。

除了上面最主要的三個(gè)方面外,還有很多幾乎大伙都很熟知的優(yōu)化點(diǎn):

1.正確使用reuseIdentifier來(lái)重用Cells

2.盡量使所有的viewopaque隅忿,包括Cell自身

3.盡量少用或不用透明圖層

4.如果Cell內(nèi)現(xiàn)實(shí)的內(nèi)容來(lái)自web心剥,使用異步加載,緩存請(qǐng)求結(jié)果

5.減少subviews的數(shù)量

6.在heightForRowAtIndexPath:中盡量不使用cellForRowAtIndexPath:背桐,如果你需要用到它优烧,只用一次然后緩存結(jié)果

7.盡量少用addView給Cell動(dòng)態(tài)添加View,可以初始化時(shí)就添加链峭,然后通過(guò)hide來(lái)控制是否顯示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末匙隔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子熏版,更是在濱河造成了極大的恐慌纷责,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撼短,死亡現(xiàn)場(chǎng)離奇詭異再膳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)曲横,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)喂柒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人禾嫉,你說(shuō)我怎么就攤上這事灾杰。” “怎么了熙参?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵艳吠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我孽椰,道長(zhǎng)昭娩,這世上最難降的妖魔是什么凛篙? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮栏渺,結(jié)果婚禮上呛梆,老公的妹妹穿的比我還像新娘。我一直安慰自己磕诊,他們只是感情好填物,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著霎终,像睡著了一般滞磺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上神僵,一...
    開(kāi)封第一講書(shū)人閱讀 50,021評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音覆劈,去河邊找鬼保礼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛责语,可吹牛的內(nèi)容都是我干的炮障。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坤候,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胁赢!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起白筹,我...
    開(kāi)封第一講書(shū)人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤智末,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后徒河,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體系馆,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年顽照,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了由蘑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡代兵,死狀恐怖尼酿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情植影,我是刑警寧澤裳擎,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站思币,受9級(jí)特大地震影響句惯,放射性物質(zhì)發(fā)生泄漏土辩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一抢野、第九天 我趴在偏房一處隱蔽的房頂上張望拷淘。 院中可真熱鬧,春花似錦指孤、人聲如沸启涯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)结洼。三九已至,卻和暖如春叉跛,著一層夾襖步出監(jiān)牢的瞬間松忍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工筷厘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸣峭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓酥艳,卻偏偏與公主長(zhǎng)得像摊溶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子充石,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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

  • 把網(wǎng)上的一些結(jié)合自己面試時(shí)遇到的面試題總結(jié)了一下莫换,以后有新的還會(huì)再加進(jìn)來(lái)。 1. OC 的理解與特性 OC 作為一...
    AlaricMurray閱讀 2,553評(píng)論 0 20
  • 1骤铃、#import跟 #include 有什么區(qū)別拉岁?@class有什么作用?#import<> 跟 #import...
    SuAdrenine閱讀 541評(píng)論 0 5
  • 1.objective-c常見(jiàn)面試題:1惰爬、**OC **語(yǔ)言的基本特點(diǎn)OC 語(yǔ)言是 C 語(yǔ)言的一個(gè)超集,只是在 C...
    LZM輪回閱讀 962評(píng)論 0 3
  • 什么是ARC(ARC是為了解決什么問(wèn)題誕生的)膛薛?ARC是Auto Reference Counting的縮寫(xiě),即自...
    Tasselx閱讀 8,042評(píng)論 8 72
  • 首先申明:以下題目答案补鼻,僅是自己的總結(jié)哄啄,如有錯(cuò)誤,還請(qǐng)多多指正风范。 一咨跌,談一下對(duì)遠(yuǎn)程推送(蘋(píng)果推送機(jī)制)的理解對(duì)于蘋(píng)...
    心情的蠱惑閱讀 432評(píng)論 3 5