iOS面試題3

1.自動(dòng)釋放池是什么,如何工作???

答:內(nèi)存釋放池提供了一個(gè)對(duì)象容器,每次對(duì)象發(fā)送autorelease消息時(shí),對(duì)象的引用 計(jì)數(shù)并不真正變化,而是向內(nèi)存釋放池中添加一條記錄,記下對(duì)象的這種要求。直到 當(dāng)內(nèi)存釋放池發(fā)送drain或release消息時(shí),即當(dāng)池被銷毀前會(huì)通知池中的所有對(duì)象,全 部發(fā)送release消息才會(huì)真正將引用計(jì)數(shù)減少。簡(jiǎn)單說(shuō)內(nèi)存釋放池可以自動(dòng)管理對(duì)象釋 放問(wèn)題,這些語(yǔ)句必須要放在下面語(yǔ)句之間,直到池被釋放,一個(gè)對(duì)象要想納入內(nèi)存 釋放池對(duì)象,必須要發(fā)送autorelease。?

2.請(qǐng)解釋一下iOS應(yīng)用的沙盒機(jī)制???

iOS中的沙盒機(jī)制(SandBox)是一種安全體系,它規(guī)定了應(yīng)用程序只能在為該 應(yīng)用創(chuàng)建的文件夾內(nèi)讀取文件,不可以訪問(wèn)其他地方的內(nèi)容。所有的非代碼文件都保 存在這個(gè)地方,比如圖片、聲音、屬性列表和文本文件等。??

1.每個(gè)應(yīng)用程序都在自己的沙盒內(nèi)??

2.不能隨意跨越自己的沙盒去訪問(wèn)別的應(yīng)用程序沙盒的內(nèi)容?

3.應(yīng)用程序向外請(qǐng)求或接收數(shù)據(jù)都需要經(jīng)過(guò)權(quán)限認(rèn)證?

3 談?wù)勀銓?duì)多線程開(kāi)發(fā)的理解?iOS中有幾種實(shí)現(xiàn)多線程的方法??

好處:?

1、使用線程可以把程序中占據(jù)時(shí)間長(zhǎng)的任務(wù)放到后臺(tái)去處理,如圖片、視頻的下載?

2、發(fā)揮多核處理器的優(yōu)勢(shì),并發(fā)執(zhí)行讓系統(tǒng)運(yùn)行的更快、更流暢,用戶體驗(yàn)更好?

缺點(diǎn):?

1、大量的線程降低代碼的可讀性,?

2、更多的線程需要更多的內(nèi)存空間?

3、當(dāng)多個(gè)線程對(duì)同一個(gè)資源出現(xiàn)爭(zhēng)奪的時(shí)候要注意線程安全的問(wèn)題。?

iOS有三種多線程編程的技術(shù):?

1、NSThread(兩種創(chuàng)建方式)?

[NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:nil];NSThread *myThread = [[NSThread alloc] initWithTarget:self selector:@selector(doSomething:) object:nil];?

[myThread start];?

2、NSOperationQueue?

NSOperationQueue *oprationQueue = [[NSOperationQueue alloc] init];?

oprationQueue addOperationWithBlock:^{?

//這個(gè)block語(yǔ)句塊在子線程中執(zhí)行?

}?

http://alloc.sinaapp.com/wp/?p=237?

3、Grand Central Dispatch (GCD)?

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{?

// 耗時(shí)的操作?

dispatch_async(dispatch_get_main_queue(), ^{?

// 更新界面 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

});?

});?

http://blog.csdn.net/totogo2010/article/details/8016129

PS:不顯示的創(chuàng)建線程的方法:用NSObject的類方法??performSelectorInBackground:withObject: 創(chuàng)建一個(gè)線程:[Obj performSelectorInBackground:@selector(doSomething) withObject:nil];

iOS 面試題1

iOS 面試題2

iOS 面試題4

iOS 面試題5

iOS 面試題6

最后編輯于
?著作權(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ù)。

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