資源描述:
《ios就業(yè)面試題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、1、b簡述OC中內(nèi)存管理機(jī)制。與retain配對(duì)使用的方法是dealloc還是release,為什么?需要與alloc配對(duì)使用的方法是dealloc還是release,為什么?readwrite,readonly,assign,retain,copy,nonatomic、atomic、strong、weak屬性的作用?并區(qū)別strong(強(qiáng)引用)、weak(弱引用)?什么情況使用copy,assign,和retain?引用計(jì)數(shù)機(jī)制進(jìn)行內(nèi)存管理。deallocrelease因?yàn)閞etain就要銷毀創(chuàng)建就要釋放readwtite:可讀寫(設(shè)置器和訪問器)readonly:只讀(
2、訪問器)assign:只做賦值retain,copy:賦值并引用計(jì)數(shù)加1copy:拷貝并引用計(jì)數(shù)加1nonatomic:非原子性anotamic:原子性(保證多線程安全)strong:打開ARC時(shí)才會(huì)使用,相當(dāng)于retainweak:打開ARC時(shí)才會(huì)使用,相當(dāng)于assign,可以把對(duì)應(yīng)的指針變量置為nilcopy:適用于接受了nscopy協(xié)議的對(duì)象類型assign:適用于一般類型retain:適用于一般對(duì)象類型2、類變量的@protected,@private,@public,@package,聲明各有什么含義?@protected:受保護(hù)的,自己和自雷可以調(diào)用@priva
3、te:私有的,只有自己可以調(diào)用@public:公共的,全局都可以調(diào)用@package:本包內(nèi)使用,跨包不可以3、線程是什么?進(jìn)程是什么?二者有什么區(qū)別和聯(lián)系?線程,有時(shí)稱為輕量級(jí)進(jìn)程,是被系統(tǒng)獨(dú)立調(diào)度和CPU的基本運(yùn)行單位。????進(jìn)程是操作系統(tǒng)中可以并行工作的基本單位。?一個(gè)應(yīng)用程序里至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程里至少有一個(gè)線程4、談?wù)勀銓?duì)多線程開發(fā)的理解?ios中有幾種實(shí)現(xiàn)多線程的方法?在一個(gè)進(jìn)程中有多個(gè)線程,每個(gè)線程有自己單獨(dú)的任務(wù)優(yōu)點(diǎn)效率快?缺點(diǎn)不安全,耗費(fèi)資源有三種第一種,使用@synchronized(self)第二種,使用GCD第三種,使用NSOperationQ
4、ueue5、多線程同步和異步的區(qū)別?IOS中如何實(shí)現(xiàn)多線程的同步?一個(gè)進(jìn)程啟動(dòng)的多個(gè)不相干線程,它們相互之間關(guān)系為異步。同步的話指的是多線程同時(shí)操作一個(gè)數(shù)據(jù)這個(gè)時(shí)候需要對(duì)數(shù)據(jù)添加保護(hù)這個(gè)保護(hù)就是線程的同步。用GCD中的串行隊(duì)列來解釋多線程的同步,也就是隊(duì)列中的任務(wù)為串行,它們各自對(duì)相鄰的任務(wù)有依賴性,如果任務(wù)1不完成,那么任務(wù)2就不會(huì)開始,這就是同步1、簡述什么地方會(huì)用到多線程?談?wù)劧嗑€程安全問題的幾種解決方案?何為線程同步,如何實(shí)現(xiàn)的?分線程回調(diào)主線程方法是什么,有什么作用?2、假設(shè)有一個(gè)字符串a(chǎn)abcad,請(qǐng)寫一段程序,去掉字符串中不相鄰的重復(fù)字符串,即上述字符串處理之
5、后的輸出結(jié)果為:aabcdNSMutableArray*marry=[[NSMutableArrayalloc]init];??for(inti=0;i6、[NSString?stringWithFormat:@"%d",j]];????????}??????}????}????}for(inti=marry.count-1;i>0;i--){?????????NSIntegernum=[[marryobjectAtIndex:i]intValue];????[strdeleteCharactersInRange:NSMakeRange(num,1)];???}3、獲取一臺(tái)設(shè)備唯一標(biāo)識(shí)的方法有哪些?UIIDUUIDMACADDRESSOPENUDID廣告標(biāo)示符Vindor標(biāo)示符4、ios類是否可以多繼承?如果沒有,那可以用其他
7、方法實(shí)現(xiàn)嗎?簡述實(shí)現(xiàn)過程。沒有用catogory和extension可以實(shí)現(xiàn)5、堆和棧的區(qū)別?堆需要用戶手動(dòng)釋放內(nèi)存,而棧則是編譯器自動(dòng)釋放內(nèi)存6、ios本地?cái)?shù)據(jù)存儲(chǔ)都有哪幾種方式?1.?NSKeyedArchiver(加密形式)???????2.?NSUserDefaults????3.?Write寫入方式?4.?SQLite31、寫出方法獲取ios內(nèi)存使用情況。void?logMemoryInfo()2、深拷貝和淺拷貝的理解?對(duì)一個(gè)實(shí)例進(jìn)行深拷貝時(shí)當(dāng)前類需要實(shí)現(xiàn)NSCopying協(xié)議。淺拷貝是復(fù)制出來一個(gè)跟原對(duì)