iOS面試題-第四頁(yè)

31.寫(xiě)一個(gè)完整的代理,包括聲明,實(shí)現(xiàn).代理:遵守協(xié)議的對(duì)象.@class MyView;第一步:指定協(xié)議:(協(xié)議名:類(lèi)名+Delegate)@protocol MyViewDelegate@required-(void)changeViewBackgroudColor:(MyView *)view;@optional-(void)test;@end @interface MyView : UIView第二步:指定代理@property (nonatomic,assign)iddelegate;

@end

第三步:代理遵循協(xié)議.

第四步:代理實(shí)現(xiàn)協(xié)議里面的必須實(shí)現(xiàn)的方法和其他可選方法.

第五步:委托方通知代理開(kāi)始執(zhí)行方法.

32.分析json.xml的區(qū)別,底層如何實(shí)現(xiàn)?

Json:鍵值對(duì).數(shù)據(jù)小,不復(fù)雜.便于解析,有框架支持,適合輕量級(jí)傳輸.作為數(shù)據(jù)包個(gè)數(shù)傳輸?shù)臅r(shí)候效率更高.

xml:標(biāo)簽套內(nèi)容.xml數(shù)據(jù)兩較大,比較復(fù)雜.適合大數(shù)據(jù)量的傳輸.xml有豐富的編碼工具,比如:Dom4j,JDom.解析方式有兩種,一是通過(guò)文芳模型解析,另外一種遍歷節(jié)點(diǎn).

33.ViewController的didReceiveMemoryWarning是在什么時(shí)候被調(diào)用的?

1.當(dāng)應(yīng)用程序的內(nèi)存使用接近系統(tǒng)的最大內(nèi)存使用時(shí),應(yīng)用會(huì)向系統(tǒng)發(fā)送內(nèi)存警告,這時(shí)候系統(tǒng)會(huì)調(diào)用方法向所有ViewController發(fā)送內(nèi)存警告.

2.打開(kāi)系統(tǒng)相機(jī).

3.加載高清圖片.

默認(rèn)操作:把里面沒(méi)有用的對(duì)象進(jìn)行釋放.

34.面向?qū)ο蟮娜筇卣?簡(jiǎn)單介紹.

封裝:代碼模塊化,方便以后調(diào)用.

繼承:子類(lèi)繼承父類(lèi)的所有方法和屬性.

多態(tài):父類(lèi)指針指向子類(lèi)對(duì)象.

35.重寫(xiě)一個(gè)NSString類(lèi)型的,retain方式聲明name屬性的setter和getter方法.

屬性的三大特性:語(yǔ)義特性,原子特性,讀寫(xiě)特性.

同時(shí)重寫(xiě)setter和getter方法,@synchronized name = _name,關(guān)聯(lián)屬性和實(shí)例變量.

- (void)setName:(NSString *)name{

if(_name != name){

[_name retain];

[_name release];

_name = name;

}

}

- (NSString *)name{

return [[_name retain]autorelease];

}

36.簡(jiǎn)述NotificationCenter.KVC,KVO,Delegate?并說(shuō)明它們之間的區(qū)別?

NotificationCenter:消息中心.消息通知.

KVC:利用鍵-值間接訪問(wèn)類(lèi)中的某個(gè)屬性.

[self setValue:@"123" forKeyPath:@"name"];

NSLog(@"%@",[self valueForKeyPath:@"name"]);

KVO:利用鍵-路徑間接訪問(wèn)類(lèi)中的某個(gè)屬性,也就是觀察者模式(KVO+通知中心).基于KVC和通知中心,觀察的是實(shí)例變量.

Delegate:用于多個(gè)類(lèi)之間的傳值.

37.What is lazy loading?

懶加載

38.對(duì)MVC的理解,好處?

MVC:是一種架構(gòu).model:數(shù)據(jù)處理,view:視圖顯示,controller:邏輯控制,負(fù)責(zé)視圖和模型之間的通信.

高類(lèi)聚,低耦合,提高代碼的復(fù)用性.

39.監(jiān)測(cè)鍵盤(pán)的彈出.

通知.

[[NSNotificationCenter defaultCenter]addObserver:self? selector:@selector()? name:UIKeyboardWillShowNotification? object:nil];

40.? 5個(gè)ios,sdk庫(kù)和第三方庫(kù).

系統(tǒng)庫(kù):UIKit框架:負(fù)責(zé)應(yīng)用程序的圖形及事件驅(qū)動(dòng)的關(guān)鍵基礎(chǔ),如:用戶(hù)界面管理,圖形和窗口支持.

Mapkit框架:地圖.

Message UI框架:電子郵件

AV Foundation框架:可用于音頻播放.

OpenAL框架:用于播放,可播放高質(zhì),高性能的網(wǎng)絡(luò)音頻

Core Data框架:將數(shù)據(jù)存儲(chǔ)在SQLite數(shù)據(jù)庫(kù).

Core Media框架:播放視頻.

第三方:SDWebImage :簡(jiǎn)化圖片處理

ShareSDK? ? 分享

SVProgressHUD? 輕量級(jí)菊花

AFNetworkin? 方便網(wǎng)絡(luò)開(kāi)發(fā)

FreeStreamer? 播放音頻

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,606評(píng)論 30 472
  • 父類(lèi)實(shí)現(xiàn)深拷貝時(shí),子類(lèi)如何實(shí)現(xiàn)深度拷貝。父類(lèi)沒(méi)有實(shí)現(xiàn)深拷貝時(shí),子類(lèi)如何實(shí)現(xiàn)深度拷貝。? 深拷貝同淺拷貝的區(qū)別:淺拷...
    JonesCxy閱讀 1,196評(píng)論 1 7
  • ? 深拷貝同淺拷貝的區(qū)別:淺拷貝是指針拷貝,對(duì)一個(gè)對(duì)象進(jìn)行淺拷貝,相當(dāng)于對(duì)指向?qū)ο蟮闹羔樳M(jìn)行復(fù)制,產(chǎn)生一個(gè)新的指向...
    WSGNSLog閱讀 1,390評(píng)論 0 1
  • 1.Difference between shallow copy and deep copy? 淺復(fù)制和深復(fù)制的...
    用心在飛閱讀 1,069評(píng)論 0 9
  • ruby打開(kāi)瀏覽器查看API文檔http://172.18.1.217:8214/ri --serve 進(jìn)入命令行...
    風(fēng)戀絕塵閱讀 647評(píng)論 0 0

友情鏈接更多精彩內(nèi)容