iOS關(guān)鍵字知識點

e3dc73ccba705dd6cc60b31dc478d44d.jpg

1、#import 跟 #include 有什么區(qū)別姿骏,@class呢阀溶,#import<> 跟 #import<>有什么區(qū)別身冬?

#include C語言中引入一個頭文件筐摘,但是可能出現(xiàn)交叉編譯
#import在OC中引入自己創(chuàng)建的頭文件#import””或者系統(tǒng)框架#import<>卒茬。
#import不會出現(xiàn)交叉編譯,@class對一個類進行聲明,告訴編譯器有這個類咖熟,但是類的定義什么的都不知道
@class的作用是告訴編譯器有@class后面的內(nèi)容是一個類名扬虚。只是告訴編譯器存在這么一個類,類具體包含哪些方法球恤,屬性和變量的并沒有告訴編譯器。一般在類的頭文件中使用@class來引入其他類荸镊。


2咽斧、描述一下KVO 和 KVC?

Key-Value Observing (簡寫為KVO):當指定的對象的屬性被修改了躬存,允許對象接受到通知的機制张惹。每次指定的被觀察對象的屬性被修改的時候,KVO都會自動的去通知相應的觀察者岭洲。
KVC
KeyValue Coding
的簡稱宛逗,它是一種可以直接通過字符串的名字(key)來訪問類屬性的機制。而不是通過調(diào)用Setter盾剩、Getter方法訪問雷激。


3替蔬、類目和繼承地區(qū)別

1.類別是對方法的擴展,不能添加成員變量屎暇。繼承可以在原來父類的成員變量的基礎(chǔ)上承桥,添加新的成員變量
2.類別只能添加新的方法,不能修改和刪除原來的方法根悼。繼承可以增加凶异、修改和刪除方法。
3.類別不提倡對原有的方法進行重載挤巡。繼承可以通過使用super對原來方法進行重載剩彬。
4.類別可以被繼承,如果一個父類中定義了類別矿卑,那么其子類中也會繼承此類別喉恋。


4、簡述你對UIView粪摘、UIWindow瀑晒、CALayer的理解。

CALayer是圖層類徘意,本身可以顯示的苔悦,但是不能響應事件。
UIViewiOS系統(tǒng)中界面元素的基礎(chǔ)椎咧,所有的界面元素都繼承自它玖详。事件的處理由它來執(zhí)行,但是顯示其實是由其對應的layer層來操作的勤讽,UIView內(nèi)嵌了一個layer蟋座,layer顯示內(nèi)容,UIView本身增加了事件處理的功能脚牍。
UIWindow繼承自UIView向臀,主要的作用是作為窗口呈現(xiàn)其他的視圖。而且一個應用程序一般情況下只有一個窗口诸狭。


5券膀、do while和while do 的區(qū)別?

while語句是先測試條件再執(zhí)行語句,條件不符后終止
do while語句是先執(zhí)行語句再測試條件,條件不符后終止,所以do while循環(huán)至少執(zhí)行一次


6驯遇、nil,NSNULL,NULL 區(qū)別

nil定義一個實例為空, 指向oc中對象的空指針.是對objective c id對象賦空值芹彬,對于objective c 集合類對象 比如數(shù)組對象,字典對象叉庐,當我們不需要再使用他們的時候舒帮,對他們release 的同時最好也把他們賦值為nil,這樣確保安全性,如果不賦值nil玩郊,可能導致程序崩潰

NSNull類定義了一個單例對象用于表示集合對象的空值
集合對象無法包含nil作為其具體值肢执,如NSArrayNSSet和NSDictionary瓦宜。相應地蔚万,nil值用一個特定的對象NSNull來表示。NSNull提供了一個單一實例用于表示對象屬性中的的nil值临庇。默認的實現(xiàn)方法中反璃,dictionaryWithValuesForKeys:setValuesForKeysWithDictionary:自動地將NSNullnil相互轉(zhuǎn)換,因此您的對象不需要進行NSNull的測試操作假夺。

NULL可以用在C語言的各種指針上,在Objective-C里淮蜈,nil對象被設(shè)計來跟NULL空指針關(guān)聯(lián)的。他們的區(qū)別就是nil是一個對象已卷,而NULL只是一個值梧田。而且我們對于nil調(diào)用方法,不會產(chǎn)生crash或者拋出異常.


7侧蘸、內(nèi)存中的棧和堆的區(qū)別是什么裁眯?哪些數(shù)據(jù)在棧上哪些數(shù)據(jù)在堆上?

1.管理方式:對于棧來講,是由編譯器自動管理,無需我們手工控制;對于堆來說,釋放工作由程序員控制,容易產(chǎn)生 memory leak讳癌。
2.申請大小:能從棧獲得的空間較小,堆是向高地址擴展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域穿稳。堆的大小受限于計算機系統(tǒng)中 有效的虛擬內(nèi)存。由此可見,堆獲得的空間比較靈活,也比較大晌坤。
3.碎片問題:對于堆來講,頻繁的new/delete勢必會造成內(nèi)存空間的不連續(xù),從而造成大量的碎片,使程序效率降低逢艘。 對于棧來講,則不會存在這個問題,因為棧是先進后出的隊列,他們是如此的一一對應,以至于永遠都不可能有一個內(nèi)存塊 從棧中間彈出
4.分配方式:堆都是動態(tài)分配的,沒有靜態(tài)分配的堆。棧有2種分配方式:靜態(tài)分配和動態(tài)分配骤菠。靜態(tài)分配是編譯器完成 的,比如局部變量的分配它改。動態(tài)分配由 alloca函數(shù)進行分配,但是棧的動態(tài)分配和堆是不同的,他的動態(tài)分配是由編譯器 進行釋放,無需我們手工實現(xiàn)。
5.分配效率:棧是機器系統(tǒng)提供的數(shù)據(jù)結(jié)構(gòu),計算機會在底層對棧提供支持:分配專門的寄存器存放棧的地址,壓棧出棧 都有專門的指令執(zhí)行,這就決定了棧的效率比較高商乎。堆則是C/C++函數(shù)庫提供的,它的機制是很復雜的央拖。
在函數(shù)體中定義的變量通常是在棧上,用malloc, calloc, realloc等分配內(nèi)存的函數(shù)分配得到的就是在堆上


8鹉戚、淺復制和深復制的區(qū)別

淺層復制:只復制指向?qū)ο蟮闹羔?而不復制引用對象本身鲜戒。
深層復制:復制引用對象本身。
意思就是說我有個A對象,復制一份后得到A_copy對象后,對于淺復制來說,A和A_copy指向的是同一 個內(nèi)存資源,復制的只不過是是一個指針,對象本身資源 還是只有一份,那如果我們對A_copy執(zhí)行了修改操作,那么發(fā)現(xiàn)A引用的對象同樣被修改,這其實違背 了我們復制拷貝的一個思想崩瓤。深復制就好理解了,內(nèi)存中存在了

兩份獨立對象本身。
用網(wǎng)上一哥們通俗的話將就是:
淺復制好比你和你的影子,你完蛋,你的影子也完蛋
深復制好比你和你的克隆人,你完蛋,你的克隆人還活著踩官。

深淺拷貝前提是:是實現(xiàn)NSCopying或者NSMutableCopying協(xié)議却桶。
淺拷貝只是復制對象本身,對象的屬性和包含的對象不做復制。
深拷貝則對對象本身復制颖系,同時對對象的屬性也進行復制嗅剖。
深淺拷貝的本質(zhì)區(qū)別是對象或者對象屬性的內(nèi)存地址是否一樣,一樣則為淺拷貝嘁扼,不一樣則為深拷貝信粮。
Foundation框架支持復制的類,默認是淺拷貝趁啸。其中對Foundation中不可變的對象進行copy時作用相當于retain强缘。
而如果是mutablecopy時,無論對象是否可變不傅,副本是可變的旅掂,并且實現(xiàn)了真正意義上的copy。如果對可變對象進行copy访娶,
副本對象是不可變的商虐,同樣是真正意義上的copy。


9崖疤、UITableView的執(zhí)行流程是怎么樣的秘车?

第一輪:
1、numberOfSectionsInTableView :假如section=2劫哼,此函數(shù)只執(zhí)行一次叮趴,假如section=0,下面函數(shù)不執(zhí)行沦偎,默認為1
2疫向、heightForHeaderInSection ,執(zhí)行兩次豪嚎,此函數(shù)執(zhí)行次數(shù)為section數(shù)目
3搔驼、heightForFooterInSection ,函數(shù)屬性同上侈询,執(zhí)行兩次
4舌涨、numberOfRowsInSection ,此方法執(zhí)行一次
5扔字、heightForHeaderInSection 囊嘉,此方法執(zhí)行了兩次,我其實有點困惑為什么這里還要調(diào)用這個方法
6革为、heightForFooterInSection 扭粱,此方法執(zhí)行兩次,
7震檩、numberOfRowsInSection琢蛤,執(zhí)行一次
8蜓堕、heightForRowAtIndexPath ,行高博其,先執(zhí)行section=0套才,對應的row次數(shù)

第二輪:
1、numberOfSectionsInTableView 慕淡,一次
2背伴、heightForHeaderInSection ,section次數(shù)
3峰髓、heightForFooterInSection 傻寂,section次數(shù)
4、numberOfRowsInSection 儿普,一次
5崎逃、heightForHeaderInSection ,執(zhí)行section次數(shù)
6眉孩、heightForFooterInSection个绍,執(zhí)行section次數(shù)
7、numberOfRowsInSection浪汪,執(zhí)行一次
8巴柿、heightForRowAtIndexPath,行高死遭,先執(zhí)行一次
9广恢、cellForRowAtIndexPath
10、willDisplayCell
然后8呀潭、9钉迷、10依次執(zhí)行直到所有的cell被描畫完畢


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钠署,隨后出現(xiàn)的幾起案子糠聪,更是在濱河造成了極大的恐慌,老刑警劉巖谐鼎,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舰蟆,死亡現(xiàn)場離奇詭異,居然都是意外死亡狸棍,警方通過查閱死者的電腦和手機身害,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來草戈,“玉大人塌鸯,你說我怎么就攤上這事√破” “怎么了丙猬?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵丢习,是天一觀的道長。 經(jīng)常有香客問我淮悼,道長,這世上最難降的妖魔是什么揽思? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任袜腥,我火速辦了婚禮,結(jié)果婚禮上钉汗,老公的妹妹穿的比我還像新娘羹令。我一直安慰自己,他們只是感情好损痰,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布福侈。 她就那樣靜靜地躺著,像睡著了一般卢未。 火紅的嫁衣襯著肌膚如雪肪凛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天辽社,我揣著相機與錄音伟墙,去河邊找鬼。 笑死滴铅,一個胖子當著我的面吹牛戳葵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汉匙,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拱烁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了噩翠?” 一聲冷哼從身側(cè)響起戏自,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绎秒,沒想到半個月后浦妄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡见芹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年剂娄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玄呛。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡阅懦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徘铝,到底是詐尸還是另有隱情耳胎,我是刑警寧澤惯吕,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站怕午,受9級特大地震影響废登,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜郁惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一堡距、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兆蕉,春花似錦羽戒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至包蓝,卻和暖如春驶社,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背测萎。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工衬吆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绳泉。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓逊抡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親零酪。 傳聞我的和親對象是個殘疾皇子冒嫡,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

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

  • 關(guān)鍵詞/關(guān)鍵類 1.#import跟#include有什么區(qū)別,@class呢四苇,#import<>跟#import...
    丶逐漸閱讀 1,446評論 0 1
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,164評論 30 470
  • 37.cocoa內(nèi)存管理規(guī)則 1)當你使用new孝凌,alloc或copy方法創(chuàng)建一個對象時,該對象的保留計數(shù)器值為1...
    如風家的秘密閱讀 856評論 0 4
  • 1.OC的類可以多重繼承嗎月腋?可以實現(xiàn)多個接口嗎蟀架?要想實現(xiàn)類似多重繼承如何實現(xiàn)?答:OC不可以實現(xiàn)多重繼承榆骚∑模可以實現(xiàn)...
    歐辰_OSR閱讀 1,992評論 0 30
  • 產(chǎn)品功能:步行導航。 所解決的問題:地圖盲妓肢,不分南北捌省,導航最后一公里。 產(chǎn)品差異化:使用攝像頭碉钠,有點現(xiàn)實增強的感覺...
    性感瓶底兒閱讀 3,098評論 1 5