100家知名企業今年來iOS面試題合集:

你要的這裏都有;java

企業要的這裏也有;ios

從基礎開始到進階、深刻底層程序員

整理出188個面試題,全是乾貨web

這些所有是題目跟類目,每一個題目都會有相對的答案,因爲字數太多因此我整理出一個文檔,文檔獲取地址,進做者建立羣:680565220 找羣文件:打造最受企業歡迎的iOS程序員獲取面試

目錄展現:

一、swift和oc的區別

二、編譯連接

三、synthesize & denamic

四、在項目開發中經常使用的開發工具備哪些?

五、UITableView & UICollection

六、NSProxy & NSObject

七、Object & Swift

八、傳值通知 & 推送通知(本地&遠程)

九、第三方庫 & 第三方平臺

十、NSCache & NSDcitionary

十一、 UIView的setNeedsDisplay和setNeedsLayout方法

十二、UILayer & UIView

1三、layoutSubViews & drawRects

1四、UDID & UUID

1五、CPU & GPU

1六、點(pt)& 像素(px)

1七、屬性與成員變量

1八、int和NSInteger的區別

(1)import和include算法

(2)@classsql

(3)全局 & 靜態變量數據庫

1九、類和對象

(1)分類拓展協議中哪些能夠聲明屬性?swift

(2)繼承和類別的區別設計模式

(3)分類的做用

(4)分類的侷限性

20、category & extension

2一、Foundation

(1)字符串

(2)字符串截取

(3)格式

2二、NSArray和NSDictionary

(1)iOS遍歷數組/字典的方法

(2)NSValue NSNumber

(3)其它

(4)如何避免循環引用

2三、CFSocket使用有哪幾個步驟

2四、Core Foundation中提供了哪幾種操做Socket的方法?

2五、解析XML文件有哪幾種方式?

2六、什麼是沙盒模型?哪些操做是屬於私有api範疇?

2七、在一個對象的方法裏面:self.name= 「object」;和 name =」object」 有什麼不一樣嗎?

2八、請簡要說明viewDidLoad和viewDidUnload什麼時候調用

2九、建立控制器、視圖的方式

30、簡述內存分區狀況

3一、隊列和棧有什麼區別

3二、iOS的系統架構

3三、控件主要響應3種事件

3四、xib文件的構成分爲哪3個圖標?都具備什麼功能

3五、簡述視圖控件器的生命週期

3六、app 項目的生命週期

(1)應用的生命週期

(2)簡要說明一下APP的啓動過程,main文件提及,main函數中有什麼函數?做用是什麼?

(3)UIApplicationMain函數做用

(4)main函數做用

3七、 動畫有基本類型有哪幾種;表視圖有哪幾種基本樣式。

3八、實現簡單的表格顯示須要設置UITableView的什麼屬性、實現什麼協議?

3九、Cocoa Touch提供了哪幾種Core Animation過渡類型?

40、UIView與CLayer有什麼區別?

4一、Quatrz 2D的繪圖功能的三個核心概念是什麼並簡述其做用

4二、iPhone OS主要提供了幾種播放音頻的方法?

4三、使用AVAudioPlayer類調用哪一個框架、使用步驟?

4四、有哪幾種手勢通知方法、寫清楚方法名?

4五、ViewController的didReceiveMemoryWarning怎麼被調用

4六、何時用delegate,何時用Notification?

4七、用預處理指令#define聲明一個常數,用以代表1年中有多少秒(忽略閏年問題)

4八、寫一個」標準"宏MIN ,這個宏輸入兩個參數並返回較小的一個。

4九、關鍵字const有什麼含意?修飾類呢?static的做用,用於類呢?還有extern c的做用

50、關鍵字volatile有什麼含意?並給出三個不一樣的例子

5一、一個參數既能夠是const還能夠是volatile嗎? 一個指針能夠是volatile 嗎?解釋爲何。

5二、static 關鍵字的做用

5三、列舉幾種進程的同步機制,並比較其優缺點。

5四、進程之間通訊的途徑

5五、進程死鎖的緣由

5六、死鎖的4個必要條件

5七、死鎖的處理

5八、cocoa touch框架

5九、自動釋放池是什麼,如何工做

60、sprintf,strcpy,memcpy使用上有什麼要注意的地方

6一、你瞭解svn,cvs等版本控制工具麼?

6二、什麼是push

6三、靜態連接庫

6四、OC三大特性

(1)封裝_點語法

(2)繼承

(3)多態

6五、OC中如何實現多態

6六、Objective-C的優缺點

6七、對於OC,你認爲最大的優勢和最大的不足是什麼?對於不足之處,如今有沒有可用的方法繞過這些不足來實現需求。若是能夠話,有沒有考慮或者實現太重新實現OC的功能,若是有,具體怎麼作?

6八、oc中可修改和不能夠修改類型

6九、咱們說的oc是動態運行時語言是什麼意思?

70、通知和協議的不一樣之處?

7一、什麼是推送消息?

7二、關於多態性

7三、什麼是謂詞?

7四、作過的項目是否涉及網絡訪問功能,使用什麼對象完成網絡功能?

7五、簡單介紹下NSURLConnection類及+sendSynchronousRequest:returningResponse:error:與– initWithRequest:delegate:兩個方法的區別?

7六、談談Object-C的內存管理方式及過程?

7七、Object-C有私有方法嗎?私有變量呢?

7八、說說響應鏈

7九、時間傳遞 & 響應者鏈

80、frame和bounds有什麼不一樣?

8一、方法和選擇器有何不一樣?

8二、OC的垃圾回收機制?

8三、什麼是延遲加載?

8四、是否在一個視圖控制器中嵌入兩個tableview控制器?

8五、一個tableView是否能夠關聯兩個不一樣的數據源?你會怎麼處理?

8六、何時使用NSMutableArray,何時使用NSArray?

8七、給出委託方法的實例,而且說出UITableVIew的Data Source方法

8八、在應用中能夠建立多少autorelease對象,是否有限制?

8九、若是咱們不建立內存池,是否有內存池提供給咱們?

90、何時須要在程序中建立內存池?

9一、類NSObject的那些方法常常被使用?

9二、什麼是簡便構造方法?

9三、如何使用Xcode設計通用應用?

9四、 UIView的動畫效果有那些?

9五、Object-C有多繼承嗎?沒有的話用什麼代替?cocoa 中全部的類都是NSObject 的子類

9六、內存管理 Autorelease、retain、copy、assign的set方法和含義?

9七、C和obj-c 如何混用

9八、類別的做用?繼承和類別在實現中有何區別?

9九、類別和類擴展的區別。

100、oc中的協議和java中的接口概念有何不一樣?

10一、深拷貝與前拷貝區別

(1)什麼是深拷貝淺拷貝

(2)字符串何時使用copy,strong

(3)字符串所在內存區域

(4)mutablecopy和copy @property(copy) NSMutableArray *arr;這樣寫有什麼問題

(5)如何讓自定義類可使用copy修飾符

10二、對於語句NSString*obj = [[NSData alloc] init]; obj在編譯時和運行時分別時什麼類型的對象?

10三、#import 跟#include 又什麼區別,@class呢, #import<> 跟 #import」"又什麼區別?

10四、Objective-C的類能夠多重繼承麼?能夠實現多個接口麼?Category是什麼?重寫一個類的方法用繼承好仍是分類好?爲何?

10五、 #import 跟#include 又什麼區別,@class呢, #import<> 跟 #import」」又什麼區別?

10六、寫一個setter方法用於完成@property (nonatomic,retain)NSString *name,寫一個setter方法用於完成@property(nonatomic,copy)NSString *name

10七、常見的Objective-C的數據類型有那些, 和C的基本數據類型有什麼區別?如:NSInteger和int

10八、id 聲明的對象有什麼特性?

10九、Objective-C如何對內存管理的,說說你的見解和解決方法?

1十、原子(atomic)跟非原子(non-atomic)屬性有什麼區別?

1十一、看下面的程序,第一個NSLog會輸出什麼?這時str的retainCount是多少?第二個和第三個呢? 爲何?

1十二、內存管理的幾條原則時什麼?按照默認法則.那些關鍵字生成的對象須要手動釋放?在和property結合的時候怎樣有效的避免內存泄露?

11三、如何對iOS設備進行性能測試?

11四、設計模式

(1)mvc模式

(2)單例模式

(3)mvvm模式

(4)觀察者模式

(5)工廠模式

(6)代理模式

(7)策略模式

(8)適配器模式

(9)模版模式

(10)外觀模式

(11)建立模式

(12)MVP模式

11五、MVVM模式原理分析

11六、說說經常使用的幾種傳值方式

11七、何時用delegate,何時用Notification

11八、對於單例的理解

11九、從設計模式角度分析代理,通知和KVO區別?ios SDK 提供 的framework使用了哪些設計模式,爲何使用?有哪些好處和壞處?

120、KVO,NSNotification,delegate及block區別

12一、運行時(runTime)

12二、runtime/消息轉發機制

(1)runtime

1.一、什麼是runtime

1.二、runtime幹什麼用,使用場景

(2)消息機制

2.一、消息轉發的原理

2.二、SEL isa super cmd 是什麼

(3)動態綁定

12三、使用bugly進行崩潰分析

12四、jenkens 持續打包

12五、KVO & KVC

(1)底層實現

(2)KVO概述

(3)KVC概述

12六、什麼是KVO和KVC?

KVO和KVC

(1)如何調用私有變量,如何修改系統的只讀屬性,KVC的查找順序

(2)什麼是鍵-值,鍵路徑是什麼

(3)kvo的實現機制

(4)KVO計算屬性,設置依賴鍵

(5)KVO集合屬性

(6)kvo使用場景

12七、SDWebImage(SDWebImage的實現機制)

(1)主要功能

(2)緩存

(3)內存緩存與磁盤緩存

12八、框架 SDWebimage的緩存機制

12九、網絡安全

密碼的安全原則

130、多線程

(1)多線程概念

(2)多線程的做用

(3)使用場景

13一、NSOperationQueue和GCD的區別是什麼

13二、GCD與NSThread的區別

13三、進程和線程的區別與聯繫是什麼?

13四、別異步執行兩個耗時操做,等兩次耗時操做都執行完畢後,再回到主線程執行操做. 使用隊列組(`dispatch_group_t`)快速,高效的實現上述需求

13五、在項目何時選擇使用GCD,何時選擇NSOperation?

13六、對比iOS中的多線程技術

13七、多線程優缺點

13八、iOS中的延遲操做

13九、串行隊列同步執行和異步主隊列

140、資源搶奪解決方案

14一、`dispatch_barrier_async`的做用是什麼?

14二、在多線程Core Data中,NSC,MOC,NSObjectModel哪些須要在線程中建立或者傳遞?你是用什麼策越來實現的?

14三、+(void)load與 +(void)initialize區別load 和 initialize方法的區別

14四、http的post與區別與聯繫,實踐中如何選擇它們?

14五、說說關於UDP/TCP的區別?

14六、http和scoket通訊的區別?socket鏈接相關庫,TCP,UDP的鏈接方法,HTTP的幾種經常使用方式?

14七、HTTP請求經常使用的幾種方式

14八、block

(1)使用block時什麼狀況會發生引用循環,如何解決?

(2)在block內如何修改block外部變量?

(3)Block & MRC-Block

(4)什麼是block

(5)block 實現原理

(6)關於block

(7)使用block和使用delegate完成委託模式有什麼優勢

(8)多線程與block

(9)談談對Block 的理解?並寫出一個使用Block執行UIVew動畫?

(10)寫出上面代碼的Block的定義(接上題)

14九、Weak、strong、copy、assign 使用

(1)什麼狀況使用 weak 關鍵字,相比 assign 有什麼不一樣?

(2)怎麼用 copy 關鍵字?

(3)weak & strong

(4)這個寫法會出什麼問題: @property (copy) NSMutableArray *array

(5) 如何讓本身的類用 copy 修飾符?如何重寫帶 copy 關鍵字的 setter?

(6) @property 的本質是什麼?ivar、getter、setter 是如何生成並添加到這個類中的

(7)ivar、getter、setter 是如何生成並添加到這個類中的?

(8)用@property聲明的NSString(或NSArray,NSDictionary)常用copy關鍵字,爲何?若是改用strong關鍵字,可能形成什麼問題?

(9)@protocol 和 category 中如何使用 @property

(10)runtime如何經過selector找到對應的IMP地址?

(11)retain和copy區別

(12)copy和strong的使用?

(13)NSString和NSMutableString,前者線程安全,後者線程不安全。

(14)readwrite,readonly,assign,retain,copy,weak ,strong,nonatomic 屬性的做用

150、OC與JS的交互(iOS與H5混編)

TableView性能優化

UITableView核心思想

UITableView的優化主要從三個方面入手:

15一、TableView爲何會卡?

15二、UITableView

(1)UITableView最核心的思想

(2)定義高度

(3)自定義高度原理

(4)老生常談之UITableView的性能優化

(5)cell高度的計算

(5.1)定高的cell和動態高度的cell

(6)TableView渲染

(7)減小視圖的數目

(8)減小多餘的繪製操做

(9)不要給cell動態添加subView

(10)異步化UI,不要阻塞主線程

(11)滑動時按需加載對應的內容

(12)離屏渲染的問題

(13)離屏渲染優化方案

15三、環信SDK使用

15四、藍牙

15五、在iPhone應用中如何保存數據?

15六、什麼是coredata?

15七、 什麼是NSManagedObject模型?

15八、什麼是NSManagedobjectContext?

15九、 iOS平臺怎麼作數據的持久化?coredata 和sqlite有無必然聯繫?coredata是一個關係型數據庫嗎?

160、CoreData & SQLite3

16一、數據存儲

(1)數據存儲技術

(1.1)數據存儲的幾種方式

(1.2)各自特色(面試考點)

(1.3)偏好設置(面試考點)

(1.4)歸檔(面試考點)

2)數據庫技術(SQLite&CoreData)

16二、Objective-C堆和棧的區別?

16三、內存泄露 & 內存溢出

16四、堆 & 棧

(1)堆棧空間分配區別

(2)堆棧緩存方式區別

(3)堆棧數據結構區別

16五、內存管理

(1)內存區域

(1.1)堆和棧的區別

(1.2)iOS內存區域

(2)字符串的內存管理

(3)你是如何優化內存管理

(4)循環引用

(5)autorelease的使用

(5.1)工廠方法爲何不釋放對象

(5.2)ARC下autorelease的使用場景

(5.3)自動釋放池如何工做

(5.4)避免內存峯值

(5.5)ARC和MRC的混用

(5.6)NSTimer的內存管理

(5.7)ARC的實現原理

16六、Runloop

16七、fmmpeg框架

16八、fmdb框架

16九、320框架

170、UIKit和CoreAnimation和CoreGraphics的關係是什麼?在開發中是否使用過CoreAnimation和CoreGraphics?

17一、trasform

17二、點講動畫和layer ,view的區別

17三、圖層與視圖

17四、平行的層級關係

17五、圖層的能力

17六、使用圖層

17七、核心繪圖

(1)View和layer的區別

(2)new和alloc init的區別

17八、動畫

17九、UICollectionView

(1)何實現瀑布流,流水佈局

(2)和UITableView的使用區別

180、UIImage

18一、webview

18二、描述九宮格算法

18三、實現圖片輪播圖

18四、iOS網絡框架

18五、網絡

(1)網絡基礎

(2)網絡傳輸

(3)AFN

18六、AFNetworking & ASIHttpRequest & MKNetWorking

(1)底層實現

(2)對服務器返回的數據處理

(3)監聽請求過程

(4)在文件下載和文件上傳的使用難易度

(5)網絡監控

(6)ASI提供的其餘實用功能

(7)MKNetworkKit

18七、性能優化

18八、算法

 

 

 

獲取展現

 

 

 

 

 

相關文章
相關標籤/搜索