面試重點-ios

1.OC有多繼承嗎?沒有的話用什么代替?

OC中沒有多繼承,可以用委托代理Protocol來實現(xiàn)。

2.Objective-C如何對內存管理的?內存管理的原則是?

Objective-C的內存管理主要有三種方式ARC(自動引用計數(shù))、MRC(手動內存計數(shù))、autorelease(自動釋放池)。

每個對象都有一個引用計數(shù)器,每個新對象的計數(shù)器是1,當對象的計數(shù)器減為0時,就會被銷毀。

內存管理原則(配對原則):只要出現(xiàn)了new/alloc/retain,就一定配對出現(xiàn)一個release/autorelease。

3、Object C中創(chuàng)建線程的方法是什么?如果在主線程中執(zhí)行代碼,方法是什么?如果想延時執(zhí)行代碼、方法又是什么?

線程創(chuàng)建有三種方法:使用NSThread創(chuàng)建、使用GCD的dispatch、使用子類化的NSOperation,然后將其加入NSOperationQueue;在主線程執(zhí)行代碼,方法是performSelectorOnMainThread,如果想延時執(zhí)行代碼可以用performSelector:onThread:withObject:waitUntilDone:;

4、淺復制和深復制的區(qū)別?

淺復制:只復制指向對象的指針,而不復制引用對象本身。

深復制:復制引用對象本身。

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

用通俗的話講就是:淺復制好比你和你的影子,你完蛋,你的影子也完蛋;深復制好比你和你的克隆人,你完蛋,你的克隆人還活著。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,211評論 30 472
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,013評論 0 7
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,434評論 0 35
  • iOS面試題及答案 1. Object-c的類可以多重繼承么?可以實現(xiàn)多個接口么?Category是什么?重寫一...
    iOS_阿輝閱讀 1,927評論 0 32
  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,759評論 0 4