精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

iOS開發(fā)設計面試試題

時間:2024-11-04 22:24:39 敏冰 面試試題 我要投稿
  • 相關推薦

iOS開發(fā)設計面試試題

  無論是對于公司還是開發(fā)者或設計師個人而言,面試都是一項耗時耗錢的項目,本文作者Cameron Banga從編程、設計、App Store等各個方面對iOS開發(fā)者及設計師在面試時可能會遇到的問題進行了篩選與匯總。一方面,能夠幫助HR在短時間內(nèi)獲取更多反饋信息,更好地甄選合適人選,而iOS開發(fā)者及設計師在尋找相關工作時,也可作為參考,為面試做好萬全準備。

iOS開發(fā)設計面試試題

  iOS開發(fā)設計面試試題一

  100個iOS開發(fā)/設計程序員面試題匯總,你將如何作答?

  常見問題

  你昨天/這周學習了什么?

  你為什么熱衷于軟件開發(fā)?

  你對哪一種控制系統(tǒng)比較熟悉?

  是否參與過GitHub項目?

  是否參與過GitHub或其他同類型網(wǎng)站的iOS開源項目?

  請描述一下你的iOS應用開發(fā)流程。

  是否熟知CocoaPods?它是什么?如何運行的?

  請概括一下你對軟件授權的理解,及其對軟件開發(fā)的影響。

  請概括一下你在構建iOS應用時的測試過程。iOS應用如何實現(xiàn)對其他語言、日期格式以及貨幣單位的支持?

  請描述一下Instruments及其作用。

  關于iOS技術

  請解釋一下Handoff是什么,并簡述它是如何實現(xiàn)iOS、Mac/網(wǎng)頁應用互通的。

  iCloud包含了哪些技術與服務?

  iOS擴展是指?能否列舉一些熱門或常見的范例?

  HealthKit是什么?

  HomeKit是什么?

  Apple Pay是什么?能否描述一下如何在應用中使用Apple Pay?

  請解釋一下iOS應用沙盒機制。

  VoiceOver是什么?請舉例解釋一下iOS中的輔助功能(Accessibility)。開發(fā)者如何使用這些功能?

  iOS應用是如何實現(xiàn)后臺多任務處理(Multitasking)的?

  Game Center針對iOS游戲有哪些功能?

  iBeacons是什么?

  Cocoa/Cocoa Touch是什么?

  請概括一下Core Audio,Core Data以及Core Location各是什么。它們對iOS應用有何意義?

  請描述SpriteKit和SceneKit的作用。(面試網(wǎng) www.pincai.com)

  Metal是什么?

  響應鏈(Responder Chain)是什么?它是如何發(fā)揮作用的?

  按鈕和其他控制方式對哪些操作做出回應?

  AppDelegate扮演著什么樣的角色?

  請解釋一下NSUserDefaults。就你而言,你會如何在磁盤中對數(shù)組對象進行序列化?

  你會如何儲存用戶的認證信息?

  請問何為Keychain服務?

  為什么移動設備上的緩存和壓縮是不可或缺的?

  請解釋一下~/Documents,~/Library和~/tmp。 iOS中的~屬于什么目錄?

  AirPlay是如何運行的?換做是你,你會如何通過編程提高應用的實用性以及演示效果?

  傳感器,IO以及WiFi、撥號等連接方式如何在iOS平臺上運作?它們有何利用價值?請扼要地談談你的觀點。

  iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差異?這對注重性能的應用有何限制?

  關于編程

  Cocoa Touch包含什么?不包含什么?

  為什么Cocoa Touch的類名稱是以兩個大寫字母開頭的?

  Swift和Objective-C分別是什么?兩者相比有何不同之處,又有何聯(lián)系?

  為什么Optional在Swift語言中非常重要?

  請解釋一下NSError。在Swift中,什么情況下能使用NSError ,什么情況下不能?

  請說明如何使用Instancetype及其重要性。

  在Swift中,什么時候該用let,什么時候該用var?

  為什么map函數(shù)必不可少?該在什么情況下使用它?

  你會選擇什么工具來追蹤Bug?

  如果在Cocoa中發(fā)現(xiàn)一個Bug,你會如何處理?

  如果應用的新版本出現(xiàn)了Regression的情況,該如何補救?如何防止用戶在使用過程中遇到新的Bug?

  Objective-C的類是怎么執(zhí)行的?Objective-C Runtime是如何實現(xiàn)的?

  iOS是如何提高安全性,保護用戶隱私信息的?

  應用可以下載并即刻顯示數(shù)據(jù)。如何根據(jù)MVC來判斷下載的最佳位置?

  MVC對代碼庫(Codebase)的設計有何影響?

  Controller Life-Cycle以及View Life-cycle分別有哪些調(diào)試方法?

  iOS使用的是哪些設計模式(Design Patterns)?你的代碼庫使用的是哪些設計模式?

  iOS提供哪些線程?如何充分利用這些線程?

  請簡要描述一下UIScrollView的執(zhí)行過程。它是如何響應手勢識別(Gesture Recognizer)、多點觸控(Multi-Touch)和Run Loop的?

  你認為iOS需要添加或改進哪些API?

  關于界面

  iPhone5、6、6+以及iPad Air 2的屏幕分辨率分別是多少?

  分辨率的計算單位是什么?

  請解釋一下Interface Builder的作用以及NIB文件的概念。

  iOS UI的圖像儲存類型是什么?

  請描述一下Storyboard和標準NIB文件的差別。

  設備狀態(tài)欄(Device Status Bar)是什么?高度如何?是否透明?在手機通話或者導航狀態(tài)下,它是如何顯示的?

  導航欄(Navigation Bar)是什么?能否拿出你的iPhone,指出你下載的哪些應用運用了導航欄?

  選項卡(Tab Bar)和工具欄(Toolbar)分別是什么?兩者之間有何共同點和不同點?

  表視圖(Table View)是什么?集合視圖(Collection View)又是什么?

  什么時候用“彈出(Popover)”屬性最為合適?

  Split-view Controller是什么?

  選取器視圖(Picker View)適合存放哪類內(nèi)容?

  應該在什么情況下使用標簽、文本域和文本視圖?

  分段控件(Segmented Control)的作用是什么?

  模態(tài)視圖(Modal View)是什么?

  iOS通知屬于什么類型?

  關于設計

  iOS應用圖標是指什么?請盡可能詳細地描述一下。

  最小尺寸和最大尺寸的應用圖標分別是什么樣子的?

  應用圖標能否包含透明的部分?

  Newsstand的圖標與常規(guī)應用有何不同?

  請解釋一下啟動畫面(Launch Images)。

  自動布局(Auto Layout)的作用是什么?請概括一下它是如何運行的。

  設計軟件時為什么要加上動畫?

  請描述一下軟件設計中的交互和Feedback有什么作用。

  設計iPhone和iPad應用時,應分別考慮哪些因素?

  請描述一下原型設計對于軟件開發(fā)的意義。其作用是什么?

  關于App Store

  應用內(nèi)購買(In-App Purchases)是怎么回事?IAP能夠為用戶帶來哪些新體驗?

  你是否在App Store上發(fā)布過應用?能否概括一下過程?

  iTunes Connect是什么?

  Provisioning Profiles是指?

  App ID是什么?

  iOS的開發(fā)和發(fā)布簽名證書有何異同?

  如何使用TestFlight?通過Ad-hoc發(fā)布應用的話,該如何使用UUID?

  應何時驗證購買收據(jù)?

  發(fā)布iAds(蘋果平臺廣告)有哪些要求?

  趣味問答

  最近有沒有開發(fā)什么好玩的東西?你最引以為豪的作品是什么?

  談一談你常用的開發(fā)工具都有哪些優(yōu)勢?

  你最敬佩的獨立Mac或者iOS應用開發(fā)者是誰?

  最喜歡什么項目?哪種類型的?

  你覺得Xcode有哪些需要改進的地方?

  iOS上你最喜歡哪些API?

  是否有最中意的錯誤報告?

  你最愛以哪種方式來檢驗一項新技術是否好用?

  為什么詞典被稱作Dictionaries,而不是HashTable或HashMap?

  iOS開發(fā)設計面試試題二

  設計模式是什么? 你知道哪些設計模式,并簡要敘述?

  設計模式是一種編碼經(jīng)驗,就是用比較成熟的邏輯去處理某一種類型的事情。

  1). MVC模式:Model View Control,把模型 視圖 控制器 層進行解耦合編寫。

  2). MVVM模式:Model View ViewModel 把模型 視圖 業(yè)務邏輯 層進行解耦和編寫。

  3). 單例模式:通過static關鍵詞,聲明全局變量。在整個進程運行期間只會被賦值一次。

  4). 觀察者模式:KVO是典型的通知模式,觀察某個屬性的狀態(tài),狀態(tài)發(fā)生變化時通知觀察者。

  5). 委托模式:代理+協(xié)議的組合。實現(xiàn)1對1的反向傳值操作。

  6). 工廠模式:通過一個類方法,批量的根據(jù)已有模板生產(chǎn)對象。

  MVC 和 MVVM 的區(qū)別

  1). MVVM是對胖模型進行的拆分,其本質(zhì)是給控制器減負,將一些弱業(yè)務邏輯放到VM中去處理。

  2). MVC是一切設計的基礎,所有新的設計模式都是基于MVC進行的改進。

  #import跟 #include 有什么區(qū)別,@class呢,#import<> 跟 #import””有什么區(qū)別?

  答:

  1). #import是Objective-C導入頭文件的關鍵字,#include是C/C++導入頭文件的關鍵字,使用#import頭文件會自動只導入一次,不會重復導入。

  2). @class告訴編譯器某個類的聲明,當執(zhí)行時,才去查看類的實現(xiàn)文件,可以解決頭文件的相互包含。

  3). #import<>用來包含系統(tǒng)的頭文件,#import””用來包含用戶頭文件。

  frame 和 bounds 有什么不同?

  frame指的是:該view在父view坐標系統(tǒng)中的位置和大小。(參照點是父view的坐標系統(tǒng))

  bounds指的是:該view在本身坐標系統(tǒng)中的位置和大小。(參照點是本身坐標系統(tǒng))

  Objective-C的類可以多重繼承么?可以實現(xiàn)多個接口么?Category是什么?重寫一個類的方式用繼承好還是分類好?為什么?

  答:Objective-C的類不可以多重繼承;可以實現(xiàn)多個接口(協(xié)議);Category是類別;一般情況用分類好,用Category去重寫類的方法,僅對本Category有效,不會影響到其他類與原有類的關系。

  @property 的本質(zhì)是什么?ivar、getter、setter 是如何生成并添加到這個類中的

  @property 的本質(zhì)是什么?

  @property = ivar + getter + setter;

  “屬性” (property)有兩大概念:ivar(實例變量)、getter+setter(存取方法)

  “屬性” (property)作為 Objective-C 的一項特性,主要的作用就在于封裝對象中的數(shù)據(jù)。 Objective-C 對象通常會把其所需要的數(shù)據(jù)保存為各種實例變量。實例變量一般通過“存取方法”(access method)來訪問。其中,“獲取方法” (getter)用于讀取變量值,而“設置方法” (setter)用于寫入變量值。

  @property中有哪些屬性關鍵字?/ @property 后面可以有哪些修飾符?

  屬性可以擁有的特質(zhì)分為四類:

  1.原子性--- nonatomic 特質(zhì)

  2.讀/寫權限---readwrite(讀寫)、readonly (只讀)

  3.內(nèi)存管理語義---assign、strong、 weak、unsafe_unretained、copy

  4.方法名---getter=、setter=

  5.不常用的:nonnull,null_resettable,nullable

  屬性關鍵字 readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?

  答:

  1). readwrite 是可讀可寫特性。需要生成getter方法和setter方法。

  2). readonly 是只讀特性。只會生成getter方法,不會生成setter方法,不希望屬性在類外改變。

  3). assign 是賦值特性。setter方法將傳入?yún)?shù)賦值給實例變量;僅設置變量時,assign用于基本數(shù)據(jù)類型。

  4). retain(MRC)/strong(ARC) 表示持有特性。setter方法將傳入?yún)?shù)先保留,再賦值,傳入?yún)?shù)的retaincount會+1。

  5). copy 表示拷貝特性。setter方法將傳入對象復制一份,需要完全一份新的變量時。

  6). nonatomic 非原子操作。決定編譯器生成的setter和getter方法是否是原子操作,atomic表示多線程安全,一般使用nonatomic,效率高。

  什么情況使用 weak 關鍵字,相比 assign 有什么不同?

  1.在 ARC 中,在有可能出現(xiàn)循環(huán)引用的時候,往往要通過讓其中一端使用 weak 來解決,比如: delegate 代理屬性。

  2.自身已經(jīng)對它進行一次強引用,沒有必要再強引用一次,此時也會使用 weak,自定義 IBOutlet 控件屬性一般也使用 weak;當然,也可以使用strong。

  IBOutlet連出來的視圖屬性為什么可以被設置成weak?

  因為父控件的subViews數(shù)組已經(jīng)對它有一個強引用。

  不同點:

  assign 可以用非 OC 對象,而 weak 必須用于 OC 對象。

  weak 表明該屬性定義了一種“非擁有關系”。在屬性所指的對象銷毀時,屬性值會自動清空(nil)。

  怎么用 copy 關鍵字?

  用途:

  1. NSString、NSArray、NSDictionary 等等經(jīng)常使用copy關鍵字,是因為他們有對應的可變類型:NSMutableString、NSMutableArray、NSMutableDictionary;

  2. block 也經(jīng)常使用 copy 關鍵字。

  說明:

  block 使用 copy 是從 MRC 遺留下來的“傳統(tǒng)”,在 MRC 中,方法內(nèi)部的 block 是在棧區(qū)的,使用 copy 可以把它放到堆區(qū).在 ARC 中寫不寫都行:對于 block 使用 copy 還是 strong 效果是一樣的,但寫上 copy 也無傷大雅,還能時刻提醒我們:編譯器自動對 block 進行了 copy 操作。如果不寫 copy ,該類的調(diào)用者有可能會忘記或者根本不知道“編譯器會自動對 block 進行了 copy 操作”,他們有可能會在調(diào)用之前自行拷貝屬性值。這種操作多余而低效。

  用@property聲明的 NSString / NSArray / NSDictionary 經(jīng)常使用 copy 關鍵字,為什么?如果改用strong關鍵字,可能造成什么問題?

  答:用 @property 聲明 NSString、NSArray、NSDictionary 經(jīng)常使用 copy 關鍵字,是因為他們有對應的可變類型:NSMutableString、NSMutableArray、NSMutableDictionary,他們之間可能進行賦值操作(就是把可變的賦值給不可變的),為確保對象中的字符串值不會無意間變動,應該在設置新屬性值時拷貝一份。

  1. 因為父類指針可以指向子類對象,使用 copy 的目的是為了讓本對象的屬性不受外界影響,使用 copy 無論給我傳入是一個可變對象還是不可對象,我本身持有的就是一個不可變的副本。

  2. 如果我們使用是 strong ,那么這個屬性就有可能指向一個可變對象,如果這個可變對象在外部被修改了,那么會影響該屬性。

  總結:使用copy的目的是,防止把可變類型的對象賦值給不可變類型的對象時,可變類型對象的值發(fā)送變化會無意間篡改不可變類型對象原來的值。

  淺拷貝和深拷貝的區(qū)別?

  答:

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

  深拷貝:復制引用對象本身。內(nèi)存中存在了兩份獨立對象本身,當修改A時,A_copy不變。

  系統(tǒng)對象的 copy 與 mutableCopy 方法

  不管是集合類對象(NSArray、NSDictionary、NSSet ... 之類的對象),還是非集合類對象(NSString, NSNumber ... 之類的對象),接收到copy和mutableCopy消息時,都遵循以下準則:

  1. copy 返回的是不可變對象(immutableObject);如果用copy返回值調(diào)用mutable對象的方法就會crash。

  2. mutableCopy 返回的是可變對象(mutableObject)。

  一、非集合類對象的copy與mutableCopy

  在非集合類對象中,對不可變對象進行copy操作,是指針復制,mutableCopy操作是內(nèi)容復制;

  對可變對象進行copy和mutableCopy都是內(nèi)容復制。用代碼簡單表示如下:

  二、集合類對象的copy與mutableCopy (同上)

  在集合類對象中,對不可變對象進行copy操作,是指針復制,mutableCopy操作是內(nèi)容復制;

  對可變對象進行copy和mutableCopy都是內(nèi)容復制。但是:集合對象的內(nèi)容復制僅限于對象本身,對集合內(nèi)的對象元素仍然是指針復制。(即單層內(nèi)容復制)

  iOS開發(fā)設計面試試題三

  1、最能概括你自己的三個詞是什么?

  回答提示:我經(jīng)常用的三個詞是:適應能力強,有責任心和做事有始終,結合具體例子向主考官解釋。

  2、你的業(yè)余愛好是什么?

  回答提示:找一些富于團體合作精神的,這里有一個真實的故事:有人被否決掉,因為他的愛好是深海潛水。主考官說:因為這是一項單人活動,我不敢肯定他能否適應團體工作。

  3、作為被面試者給我打一下分

  回答提示:試著列出四個優(yōu)點和一個非常非常非常小的缺點,(可以抱怨一下設施,沒有明確責任人的缺點是不會有人介意的)。

  4、你怎么理解你應聘的職位?

  回答提示:把崗位職責和任務及工作態(tài)度闡述一下

  5、喜歡這份工作的哪一點?

  回答提示:相信其實大家心中一定都有答案了吧!每個人的價值觀不同,自然評斷的標準也會不同,但是,在回答面試官這個問題時可不能太直接就把自己心理的話說出來,尤其是薪資方面的問題,不過一些無傷大雅的回答是不錯的考慮,如交通方便,工作性質(zhì)及內(nèi)容

  頗能符合自己的興趣等等都是不錯的答案,不過如果這時自己能仔細思考出這份工作的與眾不同之處,相信在面試上會大大加分。

  6、為什么要離職?

  回答提示:①回答這個問題時一定要小心,就算在前一個工作受到再大的委屈,對公司有多少的怨言,都千萬不要表現(xiàn)出來,尤其要避免對公司本身主管的批評,避免面試官的負面情緒及印象;建議此時最好的回答方式是將問題歸咎在自己身上,例如覺得工作沒有學習發(fā)展的空間,自己想在面試工作的相關產(chǎn)業(yè)中多加學習,或是前一份工作與自己的生涯規(guī)劃不合等等,回答的答案最好是積極正面的。 ②我希望能獲得一份更好的工作,如果機會來臨,我會抓住;我覺得目前的工作,已經(jīng)達到頂峰,即沒有升遷機會。

  7、說說你對行業(yè)、技術發(fā)展趨勢的看法?

  回答提示:企業(yè)對這個問題很感興趣,只有有備而來的求職者能夠過關。求職者可以直接在網(wǎng)上查找對你所申請的行業(yè)部門的信息,只有深入了解才能產(chǎn)生獨特的見解。企業(yè)認為最聰明的求職者是對所面試的公司預先了解很多,包括公司各個部門,發(fā)展情況,在面試回答問題的時候可以提到所了解的情況,企業(yè)歡迎進入企業(yè)的人是“知己”,而不是“盲人”。

  8、對工作的期望與目標何在?

  回答提示:這是面試者用來評斷求職者是否對自己有一定程度的期望、對這份工作是否了解的問題。對于工作有確實學習目標的人通常學習較快,對于新工作自然較容易進入狀況,這時建議你,最好針對工作的性質(zhì)找出一個確實的答案,如業(yè)務員的工作可以這樣回答:“我的目標是能成為一個超級業(yè)務員,將公司的產(chǎn)品廣泛的推銷出去,達到最好的業(yè)績成效;為了達到這個目標,我一定會努力學習,而我相信以我認真負責的態(tài)度,一定可以達到這個目標!逼渌惖墓ぷ饕部梢员日者@個方式來回答,只要在目標方面稍微修改一下就可以了。

  9、說說你的家庭。

  回答提示:企業(yè)面試時詢問家庭問題不是非要知道求職者家庭的情況,探究隱私,企業(yè)不喜歡探究個人隱私,而是要了解家庭背景對求職者的塑造和影響。企業(yè)希望聽到的重點也在于家庭對求職者的積極影響。企業(yè)最喜歡聽到的是:我很愛我的家庭!我的家庭一向很和睦,雖然我的父親和母親都是普通人,但是從小,我就看到我父親起早貪黑,每天工作特別勤勞,他的行動無形中培養(yǎng)了我認真負責的態(tài)度和勤勞的精神。我母親為人善良,對人熱情,特別樂于助人,所以在單位人緣很好,她的一言一行也一直在教導我做人的道理。企業(yè)相信,和睦的家庭關系對一個人的成長有潛移默化的影響。

  10、就你申請的這個職位,你認為你還欠缺什么?

  回答提示:企業(yè)喜歡問求職者弱點,但精明的求職者一般不直接回答。他們希望看到這樣的求職者:繼續(xù)重復自己的優(yōu)勢,然后說:“對于這個職位和我的能力來說,我相信自己是可以勝任的,只是缺乏經(jīng)驗,這個問題我想我可以進入公司以后以最短的時間來解決,我的學習能力很強,我相信可以很快融入公司的企業(yè)文化,進入工作狀態(tài)!逼髽I(yè)喜歡能夠巧妙地躲過難題的求職者。

  iOS開發(fā)設計面試試題四

  1、在最初的2-3個月時間里,你希望我能完成哪些工作?

  優(yōu)秀的iOS開發(fā)求職者希望在面試過程中做到最好。他們不希望花很多時間慢慢了解公司的結構,他們希望有所作為。所以他們想知道公司會對其有哪些期待?所以,問這個問題很有必要。他們想找到公司對其的目標和期待,才能力求表現(xiàn)突出。

  2、公司優(yōu)秀的人,都有哪些共同的特征?

  優(yōu)秀的求職者都想成為公司的長期員工。公司每個組織是不同的,那這些不同組織中的員工都有哪些共同的特征呢?他們問這個問題大都是想了解自己是否適合這份工作,以及若想成為公司優(yōu)秀的員工,需要哪些特質(zhì);蛟S這些優(yōu)秀的員工花更多的時間工作,或許更有靈活性和創(chuàng)造性,而不是嚴格遵守公司的各項流程,或者能在新領域開發(fā)新用戶而不是簡單的維持和老用戶的關系。

  但是不管面試官怎樣回答這個問題,求職者只是想知道他們是否適合這個工作,如果適合,他們也會向這些員工看齊。

  3、怎樣可以促使公司業(yè)績增長?

  員工在公司工作,可以把它看成一項投資。因為拿了公司的工資,就需要關心怎樣才能推動公司業(yè)績的增加。比如,雇主希望技術人員對公司的某一個產(chǎn)品進行改版,他們希望技術人員不僅能夠找出解決問題的辦法,最好還能想出辦法帶動其銷量的增加。對求職者而言,也需要了解幫助公司成功就是在幫助自己。

  4、員工業(yè)余時間都在做什么?

  公司的文化通常都是一項比較有爭議性的話題,因為這很大程度上取決于雇主。如果公司的文化氛圍好,員工狀態(tài)自然好,他們會更加熱愛自己的工作,也可愉快的與周圍的同事相處。但這個問題對面試官比較難回答,除非公司規(guī)模很小,否則他們只能很籠統(tǒng)的回答你。在大概了解這個情況后,求職者可了解自己能否適應公司的文化,然后方便自己做出選擇。

  5、你打算如何處理某一問題?

  幾乎是每家公司,特別是科技公司,都在面臨科技發(fā)展、競爭對手以及外部經(jīng)濟環(huán)境發(fā)展的變化。一個好的求職者不僅需要了解面試者的想法,還要了解公司未來的發(fā)展藍圖,然后怎樣才能把自己融入到公司里。不過求職者問這個問題,多半是想確認自己是否適合公司的發(fā)展軌跡。

【iOS開發(fā)設計面試試題】相關文章:

iOS面試題集合02-13

iOS面試題匯總02-13

前端開發(fā)常見面試試題02-14

Android開發(fā)工程師面試試題02-14

2016年Java開發(fā)崗位面試題02-20

HR如何設計面試題目08-25

平面設計師面試題目02-15

肯德基面試的面試試題01-20

面試試題精選02-22