IOS工程師面試筆試題_第1頁
IOS工程師面試筆試題_第2頁
IOS工程師面試筆試題_第3頁
IOS工程師面試筆試題_第4頁
IOS工程師面試筆試題_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

IOS工程師面試筆試題1、在Xcode中,需要編譯混合Objective-C和C++的源碼文件,需要將文件格式的后綴改為A..cB..cppC..mm(正確答案)D..m2、下面的http狀態(tài)碼中哪一個是狀態(tài)碼是標注請求不正確地:A.302是請求鏈接錯誤或者找不到服務器。(正確答案)B.500以上是服務器錯誤。C.200以上是正確。D.100以上是請求接受成功。3、下面關于Objective-C內(nèi)存管理的描述錯誤的是A.當使用ARC來管理內(nèi)存時,代碼中可以出現(xiàn)autorelease(正確答案)B.autoreleasepool在drain的時候會釋放在其中分配的對象C.當使用ARC來管理內(nèi)存時,在線程中大量分配對象而不用autoreleasepool則可4、使用imageNamed方法創(chuàng)建UIImage對象時,與普通的init方法有什么區(qū)別?A.沒有區(qū)別,只是為了方便B.imageNamed方法只是創(chuàng)建了一個指針,沒有分配其他內(nèi)存C.imageNamed方法將圖片加載到內(nèi)存中后不再釋放(正確答案)D.imageNamed方法將使用完圖片后立即釋放5、下面對category描述不正確的是A.category可以添加新的方法B.category可以刪除修改之前的方法(正確答案)C.將類的實現(xiàn)分散到多個不同文件或多個不同框架中D.創(chuàng)建對私有方法的前向引用6、多線程中棧與堆是公有的還是私有的A.棧公有,堆私有B.棧公有,堆公有C.棧私有,堆公有(正確答案)D.棧私有,堆私有7、單例類NSNotificationCenter提供信息廣播通知,它采用的是觀察者模式的通知機制。A.對(正確答案)B.錯8、判斷是否為iPad設備語句是?A.if([[UIDevicecurrentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPhone){...}B.if([[UIDevicecurrentDevice]userInterfaceIdiom]!=UIUserInterfaceIdiomPhone){...}C.if([[UIDevicecurrentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad){…}(正確答案)9、使用Xcode創(chuàng)建工程時,支持同時創(chuàng)建的版本管理庫是A.SubversionB.MercurialC.Git(正確答案)D.ConcurrentVersionsSystem10、UIEdgeInsetsedgeInsets=UIEdgeInsetsMake(10,10,10,10);

@synchronized(edgeInsets){

}關于以上代碼,正確的說法A.寫在大括號內(nèi)部的代碼,會保證多線程訪問edgeInsets不出錯B.UIEdgeInsetsMake是構造UIEdgeInsets數(shù)據(jù)類型的方法C.UIEdgeInsets本質(zhì)上是OC中的基本數(shù)據(jù)類型D.代碼錯誤(正確答案)11、添加子視圖的方法中,是下列哪個面向?qū)ο筇匦缘捏w現(xiàn)?A.封裝B.繼承C.多態(tài)(正確答案)D.協(xié)議12、優(yōu)秀的程序設計,應遵循下列哪個準則?A.高內(nèi)聚,高耦合B.高內(nèi)聚,低耦合(正確答案)C.低內(nèi)聚,高耦合D.低內(nèi)聚,低耦合13、為應用程序創(chuàng)建window的時候,以下哪個是聲明成屬性的必要原因?A.類的內(nèi)部可以訪問。B.類的外部可以訪問。(正確答案)C.延長生命周期。D.拷貝window副本。14、以下那個屬性可以導致view向右向下平移10個point?A.simpleView.transform=CGAffineTransformMake(10,10,1,1,0,0);B.simpleView.transform=CGAffineTransformMake(1,1,10,10,0,0);C.simpleView.transform=CGAffineTransformMake(1,0,1,0,10,10);D.simpleView.transform=CGAffineTransformMake(1,0,0,1,10,10);(正確答案)15、以下是定義cell重用標識符的語句:staticNSString*constreuseIdentifier=@"Cell";關于以上代碼說法正確的是?A.static是為了修飾變量是全局區(qū)域的B.static是為了修飾變量是可以被其它類引用為全局變量的C.const是為了修飾reuseIdentifier指針本身不可以改變(正確答案)D.const是為了修飾reuseIdentifier指針指向的內(nèi)容不可以改變16、Block作為屬性在ARC下應該使用的語義設置為?A.retainB.weakC.strong(正確答案)D.copy(正確答案)17、下列哪項不屬于數(shù)據(jù)持久化?A.屬性列表(正確答案)B.CoreDataC.NSUserDefaultsD.歸檔和反歸檔18、下面哪個類可以創(chuàng)建可變對象A.NSStringB.NSArrayC.NSMutableDictionary(正確答案)D.NSSet19、Objective-C聲明一個類所要用到的編譯指令是A.@interfaceSomeClass(正確答案)B.@protocolSomeClassC.@implementationSomeClassD.@autoreleaseSomeClass20、下面哪個方法不屬于NSObject的內(nèi)省(Introspection)方法A.init(正確答案)B.isKindOfClassC.responseToSelectorD.isMemberOfClass21、使用protocol時,聲明一組可選擇實現(xiàn)與否的函數(shù),需要在聲明的前一行加上:A.@requiredB.@optional(正確答案)C.@interfaceD.@protocol22、需要在手動管理內(nèi)存分配和釋放的Xcode項目中引入和編譯用ARC風格編寫的文件,需要在文件的CompilerFlags上添加參數(shù):A.-sharedB.-fno-objc-arcC.-fobjc-arc(正確答案)D.-dynamic23、下面關于#import和#include的描述正確的是A.#import是#include的替代指令,防止重復引用(正確答案)B.#import和#include不可以混合使用C.#import只用于引用Objective-C的文件,#include只用于引用C和C++的文件D.#import和#include的使用效果完全相同24、@implementationxxx

-(void)setVar:(int)i{

self.var=i;

}上面的代碼問題在哪?A.應該將varsynthesizeB.調(diào)用會出現(xiàn)死循環(huán)(正確答案)C.正常D.返回值錯誤25、下面那個方法可以比較兩個NSString*str1,*str2的異同A.if(str1=str2)xxx;B.if([str1isEqualToString:str2])xxx;(正確答案)C.if(str1&&str2)xxx;D.if([str1length]==[str2length])xxx;26、下面哪個不屬于對象數(shù)據(jù)序列化方法A.JSONB.PropertyListC.XMLD.HTTP(正確答案)27、在UIKit中,frame與bounds的區(qū)別是A.frame是bounds的別名B.frame是bounds的繼承類C.frame的參考系是父視圖坐標,bounds的參考系是自身的坐標(正確答案)D.frame的參考系是自身坐標,bounds的參考系是父視圖的坐標28、Objective-C有私有方法嗎?有私有變量嗎?A.有私有方法和私有變量B.沒有私有方法也沒有私有變量C.沒有私有方法,有私有變量(正確答案)D.有私有方法,沒有私有變量29、下面關于線程管理錯誤的是A.GCD所用的開銷要比NSThread大B.可以在子線程中修改UI元素(正確答案)C.NSOperationQueue是比NSthread更高層的封裝D.GCD可以根據(jù)不同優(yōu)先級分配線程30、NSTimer*myTimer=[NSTimertimerWithTimeInterval:1.0target:selfselector:@selector(doSomeThing:)userInfo:nilrepeats:YES];

[myTimerfire]上面代碼的作用是讓doSomeThing函數(shù)每隔1秒被調(diào)用1次。請問哪里有問題A.沒有將timer加入runloop(正確答案)B.doSomeThing缺少參數(shù)C.忘記傳遞數(shù)據(jù)給userInfoD.myTimer對象未通過[[myTimeralloc]init]方法初始化31、UIViewController在顯示過程中,各個方法的調(diào)用順序是A.init->viewDidLoad->viewDidAppear->viewDidUnload(正確答案)B.init->viewDidAppear->viewDidLoad->viewDidUnloadC.init->viewDidLoad->viewDidUnload->viewDidAppearD.init->viewDidAppear->viewDidUnload->viewDidLoad32、一個類的delegate(代理)的作用不正確的是A.delegate中的函數(shù)在其他類中實現(xiàn)B.主要用于不同類型的對象之間一對一傳遞消息C.沒有指派則不會觸發(fā)D.可以一個對象的delegate指派給多個其他類型的對象(正確答案)33、在沒有navigationController的情況下,要從一個ViewController切換到另一個ViewController應該A.[self.navigationControllerpushViewController:nextViewControlleranimated:YES];B.[self.viewaddSubview:nextViewController.view];C.[selfpushViewController:nextViewControlleranimated:YES];D.[selfpresentModalViewController:nextViewControlleranimated:YES];(正確答案)34、什么是keywindow?A.App中唯一的那個UIWindow對象B.可以指定一個key的UIWindowC.可接收到鍵盤輸入等事件的UIWindow(正確答案)D.不可以隱藏的那個UIWindow對象35.及時聊天app不會采用的網(wǎng)絡傳輸方式是AUDPBTCPCHttpDFTP(正確答案)36.下列技術不屬于多線程的是ABlock(正確答案)BNSThreadCNSOperationDGCD37.線程和進程的區(qū)別不正確的是A進程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元B線程之間有單獨的地址空間(正確答案)C進程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式D線程有自己的堆棧和局部變量38.堆和棧的區(qū)別正確的是A對于棧來講,我們需要手工控制,容易產(chǎn)生memoryleak。B對于堆來說,釋放工作由編譯器自動管理,無需我們手工控制C在Windows下,棧是向高地址擴展的數(shù)據(jù)結(jié)構,是連續(xù)的內(nèi)存區(qū)域,棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預先規(guī)定好的。D對于堆來講,頻繁的new/delete勢必會造成內(nèi)存空間的不連續(xù),從而造成大量的碎片,使程序效率降低。(正確答案)39.下列回調(diào)機制的理解不正確的是A目標動作對:當兩個對象之間有?比較緊密的關系時,如視圖控制器與其下的某個視圖。B代理:也叫委托,當某個對象收到多個事件,并要求同一個對象來處理所有事件時。委托機制必須依賴于某個協(xié)議定義的?方法來發(fā)送消息。(正確答案)C通告機制:當需要多個對象或兩個?無關對象處理同一個事件時。DBlock:適?于回調(diào)只發(fā)?生一次的簡單任務。40.對于runloop的理解不正確的是A每一個線程都有其對應的RunLoopB默認非主線程的RunLoop是沒有運行的C在一個單獨的線程中沒有必要去啟用RunLoop(正確答案)D可以將NSTimer添加到runloop中41.UITableView中cell的復用是由幾個數(shù)組實現(xiàn)的A1B2(正確答案)C3D3或442.點擊Button響應鏈中最終得到響應的是AWindowBApplication(正確答案)CAppDelegateDUIViewController43下面說法不正確的是Areadwrite是可讀可寫特性;需要生成getter方法和setter方法時Breadonly是只讀特性只會生成getter方法不會生成setter方法;不希望屬性在類外改變Cassign是賦值特性,和weak一樣,可用weak代替;(正確答案)Dretain表示持有特性,setter方法將傳入?yún)?shù)先保留,再賦值,傳入?yún)?shù)的retaincount會+1;44對于語句NSString*obj=[[NSDataalloc]init];obj在編譯時和運行時分別時什么類型的對象?A編譯時是NSString的類型;運行時是NSData類型的對象(正確答案)B編譯時是NSObject的類型;運行時是NSData類型的對象C編譯時是N

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論