iOS技能測試題

最近公司轉(zhuǎn)項、切模式,來了一次iOS的技能測試,有幸獲得一份卷子,給大家推薦一下:


多選題:

1.下面哪些是IOS實現(xiàn)多線程的方法:ABD

A.NSThread

B.GCD(Grand Centeral Dispatch)

C.NSTimer

D.NSOperation和NSOperationQueue

2.GCD中以下哪些方式可能會開啟新線程 CD

A.同步執(zhí)行+并發(fā)隊列

B.同步執(zhí)行+串行隊列

C.異步執(zhí)行+并發(fā)隊列

D.異步執(zhí)行+串行隊列

E.同步執(zhí)行+主隊列

F.異步執(zhí)行+主隊列

3.IOS數(shù)據(jù)持久化都有哪些方法 ABCDE

A.文件

B.歸檔

C.屬性列表

D.?dāng)?shù)據(jù)庫SQLite

E.CoreData

4.下面關(guān)于NSURLSession與NSURLConnection的區(qū)別說明正確的是 ABCD

A.NSURLConnection執(zhí)行下載任務(wù)時是將數(shù)據(jù)下載到內(nèi)存中,會造成內(nèi)存暴漲,而NSURLSession是直接將數(shù)據(jù)下載到沙盒文件中,不會占用多少內(nèi)存

B.使用NSURLSession發(fā)起請求時,暫停后可以重新啟動,而NSURLConnection停止后不能重新啟動請求任務(wù)。

C.NSURLSession斷點續(xù)傳比NSURLConnection更加簡單

D.NSURLSession支持HTTP 2.0而NSURLConnection不支持。

5.下面關(guān)于Delegate和通知的區(qū)別說明正確的是:ABD

A.都是用來傳遞消息,Delegate是一對一,通知是一對多

B.通知通過維護(hù)一個array,實現(xiàn)一對多消息的轉(zhuǎn)發(fā)

C.通知需要兩者之間建立聯(lián)系,不然無法傳遞消息

D.Delegate需要兩者之間建立聯(lián)系,不然沒法調(diào)用代理方法。

6.關(guān)于UDP、TCP、HTTP說法正確的是:ABCD

A.UDP是面向無連接的,數(shù)據(jù)傳輸不可靠

B.TCP是面向連接的,建立連接需要經(jīng)過三次握手,是可靠的傳輸層協(xié)議

C.HTTP 是建立在TCP基礎(chǔ)上的應(yīng)用層協(xié)議,實際傳輸數(shù)據(jù)還是使用TCP協(xié)議

D.HTTPS是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL安全層

單選題

1.下列說法錯誤的是 C

A.串行隊列只會開啟一個線程,讓任務(wù)一個接著一個執(zhí)行,一個任務(wù)執(zhí)行完畢后再執(zhí)行下一個任務(wù)

B.并發(fā)隊列會開啟多個線程,并且同時執(zhí)行多個任務(wù)

C.GCD中的隊列就是線程

D.在主隊列中同步執(zhí)行任務(wù)會造成死鎖

2.下列回調(diào)機(jī)制的理解不正確的是? ? B

A. 目標(biāo)動作對:當(dāng)兩個對象之間有?比較緊密的關(guān)系時,如視圖控制器與其下的某個視圖。? ? ?

B. 代理:也叫委托,當(dāng)某個對象收到多個事件,并要求同一個對象來處理所有事件時。委托機(jī)制必須依賴于某個協(xié)議定義的?方法來發(fā)送消息。? ? ?

C. 通告機(jī)制:當(dāng)需要多個對象或兩個?無關(guān)對象處理同一個事件時。? ? ?

D. Block:適?于回調(diào)只發(fā)?生一次的簡單任務(wù)。

3.Object-C聲明一個類索要用到的編譯指令是 A

A. @interface SomeClass

B. @protocol SomeClass

C. @implementation SomeClass

D. @autorelease SomeClass

4.下面關(guān)于Objective-C內(nèi)存管理的描述錯誤的是 A

A. 當(dāng)使用ARC來管理內(nèi)存時,代碼中不可以出現(xiàn)autorelease

B. autoreleasepool 在 drain 的時候會釋放在其中分配的對象

C. 當(dāng)使用ARC來管理內(nèi)存時,在線程中大量分配對象而不用autoreleasepool則可能會造成內(nèi)存泄露

D. 在使用ARC的項目中不能使用NSZone

5.下面關(guān)于#import和#include的描述正確的是 A

A. #import 是 #include 的替代指令,防止重復(fù)引用

B. #import 和 #include 不可以混合使用

C. #import 只用于引用 Objective-C的文件, #include 只用于引用C和C++的文件

D. #import 和 #include 的使用效果完全相同

6.在UIKit中,frame與bounds的區(qū)別是? C

A. frame 是 bounds 的別名

B. frame 是 bounds 的繼承類

C. frame 的參考系是父視圖坐標(biāo),bounds 的參考系是自身的坐標(biāo)

D. frame 的參考系是自身坐標(biāo),bounds 的參考系是父視圖的坐標(biāo)

7.下面關(guān)于線程管理錯誤的是? B

A. GCD所用的開銷要比NSThread大

B. 可以在子線程中修改UI元素

C. NSOperationQueue是比NSthread更高層的封裝

D. GCD可以根據(jù)不同優(yōu)先級分配線程

8.UIViewController在顯示過程中,各個方法的調(diào)用順序是 A

A. init -> viewDidLoad -> viewDidAppear -> viewDidUnload

B. init -> viewDidAppear -> viewDidLoad -> viewDidUnload

C. init -> viewDidLoad -> viewDidUnload -> viewDidAppear

D. init -> viewDidAppear -> viewDidUnload -> viewDidLoad

9.在沒有navigationController的情況下,要從一個ViewController切換到另一個ViewController應(yīng)該? D

A. [self.navigationController pushViewController:nextViewController animated:YES];

B. [self.view addSubview:nextViewController.view];

C. [self pushViewController:nextViewController animated:YES];

D. [self presentModalViewController:nextViewController animated:YES];

10.下列技術(shù)不屬于多線程的是 A

A Block

B NSThread

C NSOperation

D GCD

11.堆和棧的區(qū)別正確的是? D

A 對于棧來講,我們需要手工控制,容易產(chǎn)生memory leak

B 對于堆來說,釋放工作由編譯器自動管理,無需我們手工控制

C 在Windows下,棧是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是連續(xù)的內(nèi)存區(qū)域,棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的

D 對于堆來講,頻繁的new/delete勢必會造成內(nèi)存空間的不連續(xù),從而造成大量的碎片,使程序效率降低

12.MRC文件在ARC工程混合編譯時,需要在文件的Compiler Flags上添加什么參數(shù)? B

A -shared

B -fno-objc-arc

C -fobjc-arc

D –dynamic

13.下列關(guān)于類別說法錯誤的是 D

A.類別主要被用作給現(xiàn)有類添加新的方法

B.類別被用作一個大類的分散實現(xiàn)

C.使用類別創(chuàng)建前向引用

D.使用類別給現(xiàn)有類添加屬性

14.下面那個方法可以比較兩個NSString *str1, *str2 的異同 B

A. if(str1 = str2) xxx ;

B. if([str1 isEqualToString:str2]) xxx ;

C. if(str1 && str2) xxx ;

D. if([str1 length] == [str2 length]) xxx;

15.Objective-C有私有方法嗎?有私有變量嗎?B

A. 有私有方法和私有變量

B. 沒有私有方法, 也沒有私有變量

C. 沒有私有方法,有私有變量

D. 有私有方法,沒有私有變量

16.使用imageNamed方法創(chuàng)建UIImage對象時,與普通的init方法有什么區(qū)別 C

A. 沒有區(qū)別,只是為了方便

B. imageNamed方法只是創(chuàng)建了一個指針,沒有分配其他內(nèi)存

C. imageNamed方法將圖片加載到內(nèi)存中后不再釋放

D. imageNamed方法將使用完圖片后立即釋放

17.以下關(guān)于tableView編輯的方法中哪個不屬于代理方法 A

A -(void)setEditing:(BOOL)editing animated:(BOOL)animated

B -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath

C -(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

D -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

18.多線程中棧與堆是公有的還是私有的 C

A. 棧公有, 堆私有

B. 棧公有,堆公有

C. 棧私有, 堆公有

D. 棧私有,堆私有

19.使用Xcode創(chuàng)建工程時,支持同時創(chuàng)建的版本管理庫是 C

A. Subversion

B. Mercurial

C. Git

D. Concurrent Versions System

20.一個類的delegate(代理)的作用不正確的是 D

A. delegate中的函數(shù)在其他類中實現(xiàn)

B. 主要用于不同類型的對象之間一對一傳遞消息

C. 沒有指派則不會觸發(fā)

D. 可以一個對象的delegate指派給多個其他類型的對象

21.IOS的通知NSNotification用到了哪種代碼設(shè)計模式 D

A.單例模式

B.委托模式

C.MVC模式

D.觀察者模式

22.下面的代碼輸出什么? C

@implementation Son : Father

- (id)init {

if (self = [super init]) {

NSLog(@"%@", NSStringFromClass([self class])); // Son

NSLog(@"%@", NSStringFromClass([super class])); // Son

}

return self;

}

@end

A.Father son

B.son? Father

C. son? son

D. Father Father

23.以下代碼運行結(jié)果如何?? C

- (void)viewDidLoad {? ?

[super viewDidLoad];

NSLog(@"1");

dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"2");? ? });

NSLog(@"3");

}

A.1? 2

B.1? 2? 3

C.1?

D.1? 3

24.線程和進(jìn)程的區(qū)別不正確的是 B

A.進(jìn)程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元

B.線程之間有單獨的地址空間

C.進(jìn)程和線程的主要差別在于他們是不同的操作系統(tǒng)資源管理方式

D.線程有自己的對戰(zhàn)和局部變量

25.對于runloop的理解不正確的是?C

A.每一個線程都有其對應(yīng)的Runloop

B.默認(rèn)非主線程的Runloop是沒有運行的

C.在一個單獨的線程中沒有必要去啟用Runloop

D.可以將NSTimer添加到Runloop中。

總結(jié):希望對大家也有一定的幫助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,680評論 1 32
  • 專業(yè)考題類型管理運行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,657評論 0 13
  • 1.設(shè)計模式是什么? 你知道哪些設(shè)計模式,并簡要敘述?設(shè)計模式是一種編碼經(jīng)驗,就是用比較成熟的邏輯去處理某一種類型...
    龍飝閱讀 2,305評論 0 12
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,254評論 0 7
  • 最全的iOS面試題及答案 iOS面試小貼士 ———————————————回答好下面的足夠了-----------...
    zweic閱讀 2,804評論 0 73

友情鏈接更多精彩內(nèi)容