iOS面試題2

來源:互聯網
上載者:User

iOS面試題2

1、RunLoop是什麼。

一個RunLoop就是一個時間處理的迴圈,用來不停的調度工作以及處理輸入時間。
使用runloop的目的是讓你的線程在有工作的時候忙於工作,而沒工作的時候處於休眠狀態。runloop的設計是為了減少cpu無謂的空轉。



2、iOS中四種執行個體變數的範圍類型@private @protected @public @package


@private(私人的)

執行個體變數只能被聲明它的類訪問


@protected(受保護的)

執行個體變數能被聲明它的類和子類訪問,所有沒有顯式制定範圍的執行個體變數都是@protected 


@public(公開的)

執行個體變數可以被在任何地方訪問


@package(架構層級的)

範圍介於私人和公開之間,只要處於同一個架構中就可以直接通過變數名訪問。


3、談一談對響應鏈的認識。
當事件發生的時候,響應鏈首先被發送給第一個響應者(往往是事件發生的視圖,也就是使用者觸控螢幕幕的地方)。
事件將沿著響應者鏈一直向下傳遞,直到被接受並作出處理。
一般來說,第一響應這是個視圖對象或者其子類,當其被觸摸後事件就交由它處理,如果他不處理,時間就會被傳遞給視圖控制器對象UIViewController(如果存在),然後是它的父視圖對象(superview),以此類推知道頂層視圖。
接下來會沿著頂層視圖(top view)到視窗(UIwindow 對象) 
再到程式的(UIApplication對象),如果整個過程都沒有響應這個事件,則該事件被丟棄,

一般情況下,在響應鏈中只要有對象處理事件,事件就會被傳遞。
 
典型的響應路線圖如:
      First  Responser --> The Window -->The Applicationn --> App Delegate


4、#import、#include和@class有什麼區別。
        
#include c語言中引入一個標頭檔,但是可能出現交叉編譯
#import不會出現交叉編譯


#import在OC中引入自己建立的標頭檔#import””
或者系統架構#import<>。

@class對一個類進行聲明,告訴編譯器有這個類,但是類的定義什麼的都不知道


5、What is lazy loading?什麼是懶載入。
在使用的時候才去初始化,比如UITableViewCell的imageView屬性,懶載入對象的建立是在setter方法裡面進行建立的。




著作權聲明:本文由http://www.bestnathan.com/原創,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者部落格連結,謝謝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.