1.http和scoket通信的區(qū)別
2.mvc設(shè)計模式是什么享郊?你還熟悉什么設(shè)計模式骄蝇?
3.fmdb框架(了解一下)
4.什么是沙盒模型狼忱?哪些操作是屬于私有api范疇?
5.什么時候用delegate别智,什么時候用Notification宗苍?
6.寫一個委托的interface
8.obj-c有多重載么?不是的話有什么代替方法?
9.關(guān)鍵字const有什么含義讳窟?修飾類呢让歼?static的作用,用于類呢丽啡?還有extenrn c的作用
10.ARC和垃圾回收機(jī)制的區(qū)別
11.指出一下程序存在的問題谋右,并且修正
NSMutableArray *array1 = [NSMutableArray arrayWithArray:@[@"1",@"2",@"3"]];
NSMutableArray *array2 = [array1 copy];
[array2 addObject:@"4"];
12.NSString的屬性使用的是strong 還是copy,為什么补箍?
13.如果解決循環(huán)引用
14.tableView的重用機(jī)制
答:查看UITableView頭文件改执,會找到NSMutableArray *visiableCells和NSMutableArray *reusableTableCells兩個結(jié)構(gòu),visableCells內(nèi)保存當(dāng)前顯示的cells坑雅,reusableCells保存可重用的cells辈挂,TableView顯示之初,reusableTableCells為空那么tableView dequeueReusableCellWithIdentifier:CellIdentifier返回nil裹粤,開始的cell都是通過[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Celldentifier]來創(chuàng)建终蒂,而且cellForRowAtIndexPath只是調(diào)用最大顯示的cell的次數(shù)。比如:有100天數(shù)據(jù)遥诉,iPhone一屏最多顯示10cell拇泣。程序最開始顯示TableView的情況是:
- 用[[UITableVIewCell alloc]initWithStyle:UITableViewCellsStyleDefault reuseIdentifier:CellIdentifier]創(chuàng)建10次cell,并給cell指定同樣的重用標(biāo)識符(當(dāng)然突那,可以為不同類型的cell指定不同的標(biāo)識)挫酿。并且10個cell全部都加入到visiableCells數(shù)組构眯,reusableTableCells為空愕难。
- 向下拖動tableView,當(dāng)cell1完全移出屏幕惫霸,并且cell11(它也是alloc出來的猫缭,原因同上)完全顯示出來的時候。cell11加入到visiableCells壹店,cell1移出visiableCells猜丹,cell1加入到reusableIeTableCells。
- 接著向下拖動tableView硅卢,因為reusableTableCells中已經(jīng)有值射窒,所以,當(dāng)需要顯示新的cell将塑,cellForRowAtIndexPath再次被調(diào)用的時候脉顿,tableView dequeueReusableCellWithIdentifier:CellIdentifier,返回cell1点寥,cell1加入到visiableCells艾疟,cell1移出reusableTableCells;cell2移出visiableCells,cell2加入到reusableTableCells蔽莱。之后再需要顯示的Cells就可以正常從用了弟疆。
15.frame和bounds的區(qū)別
16.多線程的幾種方案
17.- (void)willMoveToWindow:(UIWindow *)newWindow 這個方法什么時候調(diào)用
18.NSNotification和delegate的區(qū)別
19.指出一下程序是否有問題,如果有問題請修正
for (int i = 0; i < 10000000; i++) {
UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d",i] ofType:@".png"]];
//執(zhí)行某些方法
}
20.category和extension有什么區(qū)別
21.講講Objective-C的內(nèi)存管理
22.請闡述UIVIewController生命周期相關(guān)的方法和執(zhí)行順序
23.在一個webView上輸入http://www.baidu.com到最終打開頁面盗冷,請描述中間經(jīng)歷的過程
24.闡述視圖控制器的生命周期
25.UIView與CLayer有什么區(qū)別(2)
26.iOS怎么做數(shù)據(jù)的持久化
27.描述你所理解的RunLoop
30.簡要描述GCD怠苔,NSOperation,NSTread
- NSOperation 與GCD的區(qū)別
1).GCD
- a.GCD是ios4.0推出的正塌,主要針對多核cpu多核做了優(yōu)化嘀略,是C語言的技術(shù)
- b.GCD是將任務(wù)(block)添加到隊列(串行、并行乓诽、全局帜羊、主隊列)。并且以同步/異步的方式鸠天,執(zhí)行任務(wù)的函數(shù)
- c.GCD提供了一些NSOperation不具備的功能
1.一次性執(zhí)行
2.延遲執(zhí)行
3.調(diào)度組
2)NSOperation
- a.NSOperation是iOS2.0推出的讼育,iOS4.0之后重寫了NSOperation
- b.NSOperation將操作(異步的任務(wù))添加到隊列(并發(fā)隊列),就會執(zhí)行指定操作的函數(shù)
- c.NSOperation里提供的方便的操作
1.最大并發(fā)數(shù)
2.隊列的暫停/繼續(xù)
3.取消所有操作
4.指定操作之間的依賴關(guān)系(GCD可以用同步實現(xiàn))
3)GCD與NSThread的區(qū)別
- a.NSThread通過@selector指定要執(zhí)行的方法稠集,代碼分散
- c.GCD通過block指定要執(zhí)行的代碼奶段,代碼集中,所有的代碼系在一起的剥纷,讓代碼更加簡單痹籍,易于閱讀和維護(hù)
- d.使用GCD不需要管理線程的創(chuàng)建/銷毀/復(fù)用的工程!程序員不用關(guān)心線程的生命周期
- e.如果要開多個線程N(yùn)SThread必須實例化多個線程對象
- f.NSThread靠NSObject的分類方法實現(xiàn)的線程間通訊,GCD靠block晦鞋;
31.BAD_ACCESS在什么情況下出現(xiàn)蹲缠?碌宴,怎么調(diào)試EXC_BAD_ACCESS錯誤辙培?
32.請描述你所了解的設(shè)計模式,舉例并描述使用場景
33.不手動指定autoreleasepool的前提下属划,一個autorealese對象在什么時刻釋放确买?(比如子一個vc的viewDidLoad中創(chuàng)建)
34.分別描述Swift和OC中訪問限制有哪些
35.描述KVC和KVO
36.分別描述類別(categories)和延展(extensions)是什么斤讥?以及兩者的區(qū)別?繼承和類別在實現(xiàn)中有和區(qū)別湾趾?為什么Category只能為對象添加方法芭商,卻不能添加成員變量
37.舉例編程,這里有一個整數(shù)數(shù)據(jù)int a[13] = {1,5,10,13,17,56,12,67,23,65,77,81,93};
1.使用遞歸好冒泡法進(jìn)行由大到小排序
2.請使用二分法查找數(shù)據(jù)77
38.什么是method swizzling搀缠?
39.如何提高性能的給UIImageView加個圓角铛楣?
40.GCD里面有哪幾種Queue?,你自動建立過串行queue嗎胡嘿?背后的線程模型是什么樣的蛉艾?
41.What is advantage of categories? What is difference between implementing a category and inheritance?
42.在網(wǎng)絡(luò)差的情況下,特定的一個網(wǎng)絡(luò)請求可能會耗時2-4秒,此時怎么做提高用戶體驗
43.在App中混合HTML5開發(fā)App如何實現(xiàn)的勿侯,在App中使用HTML5的優(yōu)缺點(diǎn)是什么拓瞪?
44.描述一下iOS的內(nèi)存管理,在開發(fā)中對于內(nèi)存的使用和優(yōu)化包含哪些方面助琐。我們在開發(fā)中應(yīng)注意哪些問題
45.用預(yù)處理指令#define聲明一個常數(shù)祭埂,用以表明1年中有多少秒(忽略閏年問題)
46.寫一“標(biāo)準(zhǔn)”宏MIN ,這個宏輸入兩個參數(shù)并返回較小的一個
47.數(shù)組和指針的區(qū)別
48.static的作用
49.簡述內(nèi)存分區(qū)情況
50.#include<filename>和#include “filename” 有什么區(qū)別
51.const char *p 兵钮;charconst *p蛆橡;char *const p;c..四個修飾指針有什么區(qū)別
52.簡述NotificationCenter掘譬,KVC,KVO,Delegate泰演?并說明他們之間的區(qū)別
53.iOS本地數(shù)據(jù)存儲都有哪幾種方式?
54.寫出方法獲取iOS內(nèi)存使用情況
55.請簡單寫出增葱轩,刪睦焕,改,查的SQL語句
56.分析json靴拱,xml的區(qū)別垃喊?json,xml解析方式的底層是如何處理的
57.多線程,如GCD,NSOperationQueue的特征和區(qū)別
58.socket連接與http連接
59.單例目的是什么袜炕,并簡單寫出一個案例本谜?
60.請解釋一下keywords的區(qū)別:assign weak,__block vs __weak
61.用@property聲明的NSString(或者NSArray偎窘,NSDictionary)經(jīng)常使用copy關(guān)鍵字乌助,為什么?如果改用strong關(guān)鍵字评架,可能造成什么問題眷茁?
62.對數(shù)組中的元素去重復(fù)
例如
NSArray *array= @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];