如何讓自己成為iOS面試中的佼佼者?
阿新 • • 發佈:2018-07-11
限制 私有方法 持久化 按需加載 turn 試題 nsarray alloc 概念 什麽樣的員工最受企業歡迎?
有人一直在努力提升自己,成為受企業歡迎的員工,然而,我們應該往哪些方向去提升自己呢?
100家知名企業今年來iOS面試題合集,你要的這裏都有,企業要的這裏也有,從基礎開始到進階、深入底層,整理出188個大綱,幹貨太足,每個題目都會有相對的答案,由於字數太多所以我整理出一個文檔,文檔獲取地址,加入iOS開發交流群:714042473免費獲取。
大綱展示:
1、swift和oc的區別
2、編譯鏈接
3、synthesize & denamic
4、在項目開發中常用的開發工具有哪些?
5、UITableView & UICollection
6、NSProxy & NSObject
7、Object & Swift
8、傳值通知 & 推送通知(本地&遠程)
9、第三方庫 & 第三方平臺
10、NSCache & NSDcitionary
11、 UIView的setNeedsDisplay和setNeedsLayout方法
12、UILayer & UIView
13、layoutSubViews & drawRects
14、UDID & UUID
15、CPU & GPU
16、點(pt)& 像素(px)17、屬性與成員變量
18、int和NSInteger的區別
(1)import和include
(2)@class
br/>17、屬性與成員變量
18、int和NSInteger的區別
(1)import和include
(2)@class
19、類和對象
(1)分類拓展協議中哪些可以聲明屬性?
(2)繼承和類別的區別
(3)分類的作用
(4)分類的局限性
20、category & extension
21、Foundation
(1)字符串
(2)字符串截取
(3)格式
22、NSArray和NSDictionary
(1)iOS遍歷數組/字典的方法
(2)NSValue NSNumber
(3)其它
(4)如何避免循環引用
23、CFSocket使用有哪幾個步驟
24、Core Foundation中提供了哪幾種操作Socket的方法?
25、解析XML文件有哪幾種方式?
26、什麽是沙盒模型?哪些操作是屬於私有api範疇?
27、在一個對象的方法裏面:self.name= “object”;和 name =”object” 有什麽不同嗎?
28、請簡要說明viewDidLoad和viewDidUnload何時調用
29、創建控制器、視圖的方式
30、簡述內存分區情況
31、隊列和棧有什麽區別
32、iOS的系統架構
33、控件主要響應3種事件
34、xib文件的構成分為哪3個圖標?都具有什麽功能
35、簡述視圖控件器的生命周期
36、app 項目的生命周期
(1)應用的生命周期
(2)簡要說明一下APP的啟動過程,main文件說起,main函數中有什麽函數?作用是什麽?
(3)UIApplicationMain函數作用
(4)main函數作用
37、 動畫有基本類型有哪幾種;表視圖有哪幾種基本樣式。
38、實現簡單的表格顯示需要設置UITableView的什麽屬性、實現什麽協議?
39、Cocoa Touch提供了哪幾種Core Animation過渡類型?
40、UIView與CLayer有什麽區別?
41、Quatrz 2D的繪圖功能的三個核心概念是什麽並簡述其作用
42、iPhone OS主要提供了幾種播放音頻的方法?
43、使用AVAudioPlayer類調用哪個框架、使用步驟?
44、有哪幾種手勢通知方法、寫清楚方法名?
45、ViewController的didReceiveMemoryWarning怎麽被調用
46、什麽時候用delegate,什麽時候用Notification?
47、用預處理指令#define聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)
48、寫一個”標準"宏MIN ,這個宏輸入兩個參數並返回較小的一個。
49、關鍵字const有什麽含意?修飾類呢?static的作用,用於類呢?還有extern c的作用
50、關鍵字volatile有什麽含意?並給出三個不同的例子
51、一個參數既可以是const還可以是volatile嗎? 一個指針可以是volatile 嗎?解釋為什麽。
52、static 關鍵字的作用
53、列舉幾種進程的同步機制,並比較其優缺點。
54、進程之間通信的途徑
55、進程死鎖的原因
56、死鎖的4個必要條件
57、死鎖的處理
58、cocoa touch框架
59、自動釋放池是什麽,如何工作
60、sprintf,strcpy,memcpy使用上有什麽要註意的地方
61、你了解svn,cvs等版本控制工具麽?
62、什麽是push
63、靜態鏈接庫
64、OC三大特性
(1)封裝_點語法
(2)繼承
(3)多態
65、OC中如何實現多態
66、Objective-C的優缺點
67、對於OC,你認為最大的優點和最大的不足是什麽?對於不足之處,現在有沒有可用的方法繞過這些不足來實現需求。如果可以話,有沒有考慮或者實現過重新實現OC的功能,如果有,具體怎麽做?
68、oc中可修改和不可以修改類型
69、我們說的oc是動態運行時語言是什麽意思?
70、通知和協議的不同之處?
71、什麽是推送消息?
72、關於多態性
73、什麽是謂詞?
74、做過的項目是否涉及網絡訪問功能,使用什麽對象完成網絡功能?
75、簡單介紹下NSURLConnection類及+sendSynchronousRequest:returningResponse:error:與– initWithRequest:delegate:兩個方法的區別?
76、談談Object-C的內存管理方式及過程?
77、Object-C有私有方法嗎?私有變量呢?
78、說說響應鏈
79、時間傳遞 & 響應者鏈
80、frame和bounds有什麽不同?
81、方法和選擇器有何不同?
82、OC的垃圾回收機制?
83、什麽是延遲加載?
84、是否在一個視圖控制器中嵌入兩個tableview控制器?
85、一個tableView是否可以關聯兩個不同的數據源?你會怎麽處理?
86、什麽時候使用NSMutableArray,什麽時候使用NSArray?
87、給出委托方法的實例,並且說出UITableVIew的Data Source方法
88、在應用中可以創建多少autorelease對象,是否有限制?
89、如果我們不創建內存池,是否有內存池提供給我們?
90、什麽時候需要在程序中創建內存池?
91、類NSObject的那些方法經常被使用?
92、什麽是簡便構造方法?
93、如何使用Xcode設計通用應用?
94、 UIView的動畫效果有那些?
95、Object-C有多繼承嗎?沒有的話用什麽代替?cocoa 中所有的類都是NSObject 的子類
96、內存管理 Autorelease、retain、copy、assign的set方法和含義?
97、C和obj-c 如何混用
98、類別的作用?繼承和類別在實現中有何區別?
99、類別和類擴展的區別。
100、oc中的協議和java中的接口概念有何不同?
101、深拷貝與前拷貝區別
(1)什麽是深拷貝淺拷貝
(2)字符串什麽時候使用copy,strong
(3)字符串所在內存區域
(4)mutablecopy和copy @property(copy) NSMutableArray arr;這樣寫有什麽問題
(5)如何讓自定義類可以使用copy修飾符
102、對於語句NSStringobj = [[NSData alloc] init]; obj在編譯時和運行時分別時什麽類型的對象?
103、#import 跟#include 又什麽區別,@class呢, #import<> 跟 #import”"又什麽區別?
104、Objective-C的類可以多重繼承麽?可以實現多個接口麽?Category是什麽?重寫一個類的方法用繼承好還是分類好?為什麽?
105、 #import 跟#include 又什麽區別,@class呢, #import<> 跟 #import””又什麽區別?
106、寫一個setter方法用於完成@property (nonatomic,retain)NSString name,寫一個setter方法用於完成@property(nonatomic,copy)NSString name
107、常見的Objective-C的數據類型有那些, 和C的基本數據類型有什麽區別?如:NSInteger和int
108、id 聲明的對象有什麽特性?
109、Objective-C如何對內存管理的,說說你的看法和解決方法?
110、原子(atomic)跟非原子(non-atomic)屬性有什麽區別?
111、看下面的程序,第一個NSLog會輸出什麽?這時str的retainCount是多少?第二個和第三個呢? 為什麽?
112、內存管理的幾條原則時什麽?按照默認法則.那些關鍵字生成的對象需要手動釋放?在和property結合的時候怎樣有效的避免內存泄露?
113、如何對iOS設備進行性能測試?
114、設計模式
(1)mvc模式
(2)單例模式
(3)mvvm模式
(4)觀察者模式
(5)工廠模式
(6)代理模式
(7)策略模式
(8)適配器模式
(9)模版模式
(10)外觀模式
(11)創建模式
(12)MVP模式
115、MVVM模式原理分析
116、說說常用的幾種傳值方式
117、什麽時候用delegate,什麽時候用Notification
118、對於單例的理解
119、從設計模式角度分析代理,通知和KVO區別?ios SDK 提供 的framework使用了哪些設計模式,為什麽使用?有哪些好處和壞處?
120、KVO,NSNotification,delegate及block區別
121、運行時(runTime)
122、runtime/消息轉發機制
(1)runtime
1.1、什麽是runtime
1.2、runtime幹什麽用,使用場景
(2)消息機制
2.1、消息轉發的原理
2.2、SEL isa super cmd 是什麽
(3)動態綁定
123、使用bugly進行崩潰分析
124、jenkens 持續打包
125、KVO & KVC
(1)底層實現
(2)KVO概述
(3)KVC概述
126、什麽是KVO和KVC?
KVO和KVC
(1)如何調用私有變量,如何修改系統的只讀屬性,KVC的查找順序
(2)什麽是鍵-值,鍵路徑是什麽
(3)kvo的實現機制
(4)KVO計算屬性,設置依賴鍵
(5)KVO集合屬性
(6)kvo使用場景
127、SDWebImage(SDWebImage的實現機制)
(1)主要功能
(2)緩存
(3)內存緩存與磁盤緩存
128、框架 SDWebimage的緩存機制
129、網絡安全
密碼的安全原則
130、多線程
(1)多線程概念
(2)多線程的作用
(3)使用場景
131、NSOperationQueue和GCD的區別是什麽
132、GCD與NSThread的區別
133、進程和線程的區別與聯系是什麽?
134、別異步執行兩個耗時操作,等兩次耗時操作都執行完畢後,再回到主線程執行操作. 使用隊列組(
135、在項目什麽時候選擇使用GCD,什麽時候選擇NSOperation?
136、對比iOS中的多線程技術
137、多線程優缺點
138、iOS中的延遲操作
139、串行隊列同步執行和異步主隊列
140、資源搶奪解決方案
141、
142、在多線程Core Data中,NSC,MOC,NSObjectModel哪些需要在線程中創建或者傳遞?你是用什麽策越來實現的?
143、+(void)load與 +(void)initialize區別load 和 initialize方法的區別
144、http的post與區別與聯系,實踐中如何選擇它們?
145、說說關於UDP/TCP的區別?
146、http和scoket通信的區別?socket連接相關庫,TCP,UDP的連接方法,HTTP的幾種常用方式?
147、HTTP請求常用的幾種方式
148、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的定義(接上題)
149、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關鍵字,可能造成什麽問題?
br/>(8)用@property聲明的NSString(或NSArray,NSDictionary)經常使用copy關鍵字,為什麽?如果改用strong關鍵字,可能造成什麽問題?
(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的優化主要從三個方面入手:
151、TableView為什麽會卡?
152、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)離屏渲染優化方案
153、環信SDK使用
154、藍牙
155、在iPhone應用中如何保存數據?
156、什麽是coredata?
157、 什麽是NSManagedObject模型?
158、什麽是NSManagedobjectContext?
159、 iOS平臺怎麽做數據的持久化?coredata 和sqlite有無必然聯系?coredata是一個關系型數據庫嗎?
160、CoreData & SQLite3
161、數據存儲
(1)數據存儲技術
(1.1)數據存儲的幾種方式
(1.2)各自特點(面試考點)
(1.3)偏好設置(面試考點)
(1.4)歸檔(面試考點)
(2)數據庫技術(SQLite&CoreData)
162、Objective-C堆和棧的區別?
163、內存泄露 & 內存溢出
164、堆 & 棧
(1)堆棧空間分配區別
(2)堆棧緩存方式區別
(3)堆棧數據結構區別
165、內存管理
(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的實現原理
166、Runloop
167、fmmpeg框架
168、fmdb框架
169、320框架
170、UIKit和CoreAnimation和CoreGraphics的關系是什麽?在開發中是否使用過CoreAnimation和CoreGraphics?
171、trasform
172、點講動畫和layer ,view的區別
173、圖層與視圖
174、平行的層級關系
175、圖層的能力
176、使用圖層
177、核心繪圖
(1)View和layer的區別
(2)new和alloc init的區別
178、動畫
179、UICollectionView
(1)何實現瀑布流,流水布局
(2)和UITableView的使用區別
180、UIImage
181、webview
182、描述九宮格算法
183、實現圖片輪播圖
184、iOS網絡框架
185、網絡
(1)網絡基礎
(2)網絡傳輸
(3)AFN
186、AFNetworking & ASIHttpRequest & MKNetWorking
(1)底層實現
(2)對服務器返回的數據處理
(3)監聽請求過程
(4)在文件下載和文件上傳的使用難易度
(5)網絡監控
(6)ASI提供的其他實用功能
(7)MKNetworkKit
187、性能優化
188、算法
這些全部是題目跟類目,每個題目都會有相對的答案,由於字數太多所以我整理出一個文檔,文檔獲取地址,加入iOS開發交流群:714042473,或者直接加小編qq直接免費獲取:2842904373,讓我們一起打造最受企業歡迎的iOS程序員!
有人一直在努力提升自己,成為受企業歡迎的員工,然而,我們應該往哪些方向去提升自己呢?
100家知名企業今年來iOS面試題合集,你要的這裏都有,企業要的這裏也有,從基礎開始到進階、深入底層,整理出188個大綱,幹貨太足,每個題目都會有相對的答案,由於字數太多所以我整理出一個文檔,文檔獲取地址,加入iOS開發交流群:714042473免費獲取。
大綱展示:
1、swift和oc的區別
2、編譯鏈接
3、synthesize & denamic
4、在項目開發中常用的開發工具有哪些?
5、UITableView & UICollection
6、NSProxy & NSObject
8、傳值通知 & 推送通知(本地&遠程)
9、第三方庫 & 第三方平臺
10、NSCache & NSDcitionary
11、 UIView的setNeedsDisplay和setNeedsLayout方法
12、UILayer & UIView
13、layoutSubViews & drawRects
14、UDID & UUID
15、CPU & GPU
16、點(pt)& 像素(px)17、屬性與成員變量
18、int和NSInteger的區別
(1)import和include
(2)@class
18、int和NSInteger的區別
(1)import和include
(2)@class
19、類和對象
(1)分類拓展協議中哪些可以聲明屬性?
(2)繼承和類別的區別
(3)分類的作用
(4)分類的局限性
20、category & extension
21、Foundation
(1)字符串
(2)字符串截取
(3)格式
22、NSArray和NSDictionary
(1)iOS遍歷數組/字典的方法
(2)NSValue NSNumber
(3)其它
(4)如何避免循環引用
23、CFSocket使用有哪幾個步驟
24、Core Foundation中提供了哪幾種操作Socket的方法?
25、解析XML文件有哪幾種方式?
27、在一個對象的方法裏面:self.name= “object”;和 name =”object” 有什麽不同嗎?
28、請簡要說明viewDidLoad和viewDidUnload何時調用
29、創建控制器、視圖的方式
30、簡述內存分區情況
31、隊列和棧有什麽區別
32、iOS的系統架構
33、控件主要響應3種事件
34、xib文件的構成分為哪3個圖標?都具有什麽功能
35、簡述視圖控件器的生命周期
36、app 項目的生命周期
(1)應用的生命周期
(2)簡要說明一下APP的啟動過程,main文件說起,main函數中有什麽函數?作用是什麽?
(3)UIApplicationMain函數作用
(4)main函數作用
37、 動畫有基本類型有哪幾種;表視圖有哪幾種基本樣式。
38、實現簡單的表格顯示需要設置UITableView的什麽屬性、實現什麽協議?
39、Cocoa Touch提供了哪幾種Core Animation過渡類型?
40、UIView與CLayer有什麽區別?
41、Quatrz 2D的繪圖功能的三個核心概念是什麽並簡述其作用
42、iPhone OS主要提供了幾種播放音頻的方法?
43、使用AVAudioPlayer類調用哪個框架、使用步驟?
44、有哪幾種手勢通知方法、寫清楚方法名?
45、ViewController的didReceiveMemoryWarning怎麽被調用
46、什麽時候用delegate,什麽時候用Notification?
47、用預處理指令#define聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)
48、寫一個”標準"宏MIN ,這個宏輸入兩個參數並返回較小的一個。
49、關鍵字const有什麽含意?修飾類呢?static的作用,用於類呢?還有extern c的作用
50、關鍵字volatile有什麽含意?並給出三個不同的例子
51、一個參數既可以是const還可以是volatile嗎? 一個指針可以是volatile 嗎?解釋為什麽。
52、static 關鍵字的作用
53、列舉幾種進程的同步機制,並比較其優缺點。
54、進程之間通信的途徑
55、進程死鎖的原因
56、死鎖的4個必要條件
57、死鎖的處理
58、cocoa touch框架
59、自動釋放池是什麽,如何工作
60、sprintf,strcpy,memcpy使用上有什麽要註意的地方
61、你了解svn,cvs等版本控制工具麽?
62、什麽是push
63、靜態鏈接庫
64、OC三大特性
(1)封裝_點語法
(2)繼承
(3)多態
65、OC中如何實現多態
66、Objective-C的優缺點
67、對於OC,你認為最大的優點和最大的不足是什麽?對於不足之處,現在有沒有可用的方法繞過這些不足來實現需求。如果可以話,有沒有考慮或者實現過重新實現OC的功能,如果有,具體怎麽做?
68、oc中可修改和不可以修改類型
69、我們說的oc是動態運行時語言是什麽意思?
70、通知和協議的不同之處?
71、什麽是推送消息?
72、關於多態性
73、什麽是謂詞?
74、做過的項目是否涉及網絡訪問功能,使用什麽對象完成網絡功能?
75、簡單介紹下NSURLConnection類及+sendSynchronousRequest:returningResponse:error:與– initWithRequest:delegate:兩個方法的區別?
76、談談Object-C的內存管理方式及過程?
77、Object-C有私有方法嗎?私有變量呢?
78、說說響應鏈
79、時間傳遞 & 響應者鏈
80、frame和bounds有什麽不同?
81、方法和選擇器有何不同?
82、OC的垃圾回收機制?
83、什麽是延遲加載?
84、是否在一個視圖控制器中嵌入兩個tableview控制器?
85、一個tableView是否可以關聯兩個不同的數據源?你會怎麽處理?
86、什麽時候使用NSMutableArray,什麽時候使用NSArray?
87、給出委托方法的實例,並且說出UITableVIew的Data Source方法
88、在應用中可以創建多少autorelease對象,是否有限制?
89、如果我們不創建內存池,是否有內存池提供給我們?
90、什麽時候需要在程序中創建內存池?
91、類NSObject的那些方法經常被使用?
92、什麽是簡便構造方法?
93、如何使用Xcode設計通用應用?
94、 UIView的動畫效果有那些?
95、Object-C有多繼承嗎?沒有的話用什麽代替?cocoa 中所有的類都是NSObject 的子類
96、內存管理 Autorelease、retain、copy、assign的set方法和含義?
97、C和obj-c 如何混用
98、類別的作用?繼承和類別在實現中有何區別?
99、類別和類擴展的區別。
100、oc中的協議和java中的接口概念有何不同?
101、深拷貝與前拷貝區別
(1)什麽是深拷貝淺拷貝
(2)字符串什麽時候使用copy,strong
(3)字符串所在內存區域
(4)mutablecopy和copy @property(copy) NSMutableArray arr;這樣寫有什麽問題
(5)如何讓自定義類可以使用copy修飾符
102、對於語句NSStringobj = [[NSData alloc] init]; obj在編譯時和運行時分別時什麽類型的對象?
103、#import 跟#include 又什麽區別,@class呢, #import<> 跟 #import”"又什麽區別?
104、Objective-C的類可以多重繼承麽?可以實現多個接口麽?Category是什麽?重寫一個類的方法用繼承好還是分類好?為什麽?
105、 #import 跟#include 又什麽區別,@class呢, #import<> 跟 #import””又什麽區別?
106、寫一個setter方法用於完成@property (nonatomic,retain)NSString name,寫一個setter方法用於完成@property(nonatomic,copy)NSString name
107、常見的Objective-C的數據類型有那些, 和C的基本數據類型有什麽區別?如:NSInteger和int
108、id 聲明的對象有什麽特性?
109、Objective-C如何對內存管理的,說說你的看法和解決方法?
110、原子(atomic)跟非原子(non-atomic)屬性有什麽區別?
111、看下面的程序,第一個NSLog會輸出什麽?這時str的retainCount是多少?第二個和第三個呢? 為什麽?
112、內存管理的幾條原則時什麽?按照默認法則.那些關鍵字生成的對象需要手動釋放?在和property結合的時候怎樣有效的避免內存泄露?
113、如何對iOS設備進行性能測試?
114、設計模式
(1)mvc模式
(2)單例模式
(3)mvvm模式
(4)觀察者模式
(5)工廠模式
(6)代理模式
(7)策略模式
(8)適配器模式
(9)模版模式
(10)外觀模式
(11)創建模式
(12)MVP模式
115、MVVM模式原理分析
116、說說常用的幾種傳值方式
117、什麽時候用delegate,什麽時候用Notification
118、對於單例的理解
119、從設計模式角度分析代理,通知和KVO區別?ios SDK 提供 的framework使用了哪些設計模式,為什麽使用?有哪些好處和壞處?
120、KVO,NSNotification,delegate及block區別
121、運行時(runTime)
122、runtime/消息轉發機制
(1)runtime
1.1、什麽是runtime
1.2、runtime幹什麽用,使用場景
(2)消息機制
2.1、消息轉發的原理
2.2、SEL isa super cmd 是什麽
(3)動態綁定
123、使用bugly進行崩潰分析
124、jenkens 持續打包
125、KVO & KVC
(1)底層實現
(2)KVO概述
(3)KVC概述
126、什麽是KVO和KVC?
KVO和KVC
(1)如何調用私有變量,如何修改系統的只讀屬性,KVC的查找順序
(2)什麽是鍵-值,鍵路徑是什麽
(3)kvo的實現機制
(4)KVO計算屬性,設置依賴鍵
(5)KVO集合屬性
(6)kvo使用場景
127、SDWebImage(SDWebImage的實現機制)
(1)主要功能
(2)緩存
(3)內存緩存與磁盤緩存
128、框架 SDWebimage的緩存機制
129、網絡安全
密碼的安全原則
130、多線程
(1)多線程概念
(2)多線程的作用
(3)使用場景
131、NSOperationQueue和GCD的區別是什麽
132、GCD與NSThread的區別
133、進程和線程的區別與聯系是什麽?
134、別異步執行兩個耗時操作,等兩次耗時操作都執行完畢後,再回到主線程執行操作. 使用隊列組(
dispatch_group_t
)快速,高效的實現上述需求135、在項目什麽時候選擇使用GCD,什麽時候選擇NSOperation?
136、對比iOS中的多線程技術
137、多線程優缺點
138、iOS中的延遲操作
139、串行隊列同步執行和異步主隊列
140、資源搶奪解決方案
141、
dispatch_barrier_async
的作用是什麽?142、在多線程Core Data中,NSC,MOC,NSObjectModel哪些需要在線程中創建或者傳遞?你是用什麽策越來實現的?
143、+(void)load與 +(void)initialize區別load 和 initialize方法的區別
144、http的post與區別與聯系,實踐中如何選擇它們?
145、說說關於UDP/TCP的區別?
146、http和scoket通信的區別?socket連接相關庫,TCP,UDP的連接方法,HTTP的幾種常用方式?
147、HTTP請求常用的幾種方式
148、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的定義(接上題)
149、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關鍵字,可能造成什麽問題?
br/>(8)用@property聲明的NSString(或NSArray,NSDictionary)經常使用copy關鍵字,為什麽?如果改用strong關鍵字,可能造成什麽問題?
(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的優化主要從三個方面入手:
151、TableView為什麽會卡?
152、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)離屏渲染優化方案
153、環信SDK使用
154、藍牙
155、在iPhone應用中如何保存數據?
156、什麽是coredata?
157、 什麽是NSManagedObject模型?
158、什麽是NSManagedobjectContext?
159、 iOS平臺怎麽做數據的持久化?coredata 和sqlite有無必然聯系?coredata是一個關系型數據庫嗎?
160、CoreData & SQLite3
161、數據存儲
(1)數據存儲技術
(1.1)數據存儲的幾種方式
(1.2)各自特點(面試考點)
(1.3)偏好設置(面試考點)
(1.4)歸檔(面試考點)
(2)數據庫技術(SQLite&CoreData)
162、Objective-C堆和棧的區別?
163、內存泄露 & 內存溢出
164、堆 & 棧
(1)堆棧空間分配區別
(2)堆棧緩存方式區別
(3)堆棧數據結構區別
165、內存管理
(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的實現原理
166、Runloop
167、fmmpeg框架
168、fmdb框架
169、320框架
170、UIKit和CoreAnimation和CoreGraphics的關系是什麽?在開發中是否使用過CoreAnimation和CoreGraphics?
171、trasform
172、點講動畫和layer ,view的區別
173、圖層與視圖
174、平行的層級關系
175、圖層的能力
176、使用圖層
177、核心繪圖
(1)View和layer的區別
(2)new和alloc init的區別
178、動畫
179、UICollectionView
(1)何實現瀑布流,流水布局
(2)和UITableView的使用區別
180、UIImage
181、webview
182、描述九宮格算法
183、實現圖片輪播圖
184、iOS網絡框架
185、網絡
(1)網絡基礎
(2)網絡傳輸
(3)AFN
186、AFNetworking & ASIHttpRequest & MKNetWorking
(1)底層實現
(2)對服務器返回的數據處理
(3)監聽請求過程
(4)在文件下載和文件上傳的使用難易度
(5)網絡監控
(6)ASI提供的其他實用功能
(7)MKNetworkKit
187、性能優化
188、算法
這些全部是題目跟類目,每個題目都會有相對的答案,由於字數太多所以我整理出一個文檔,文檔獲取地址,加入iOS開發交流群:714042473,或者直接加小編qq直接免費獲取:2842904373,讓我們一起打造最受企業歡迎的iOS程序員!
如何讓自己成為iOS面試中的佼佼者?