#import〃獲取當(dāng)前設(shè)備可用內(nèi)存(單位:MB)-(double)availableMemor">
ios面試題--有答案2

ios面試題--有答案2

ID:30776226

大小:51.05 KB

頁數(shù):4頁

時(shí)間:2019-01-03

ios面試題--有答案2_第1頁
ios面試題--有答案2_第2頁
ios面試題--有答案2_第3頁
ios面試題--有答案2_第4頁
資源描述:

《ios面試題--有答案2》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、1、寫出方法獲取iOS內(nèi)存使用情況。〃獲取當(dāng)前設(shè)備可用內(nèi)存及所占內(nèi)存的頭文件#import#import〃獲取當(dāng)前設(shè)備可用內(nèi)存(單位:MB)-(double)availableMemory{vm_statistics_data_tvmStats;mach_msg_type_number_tinfoCount=HOST_VM」NFO_COUNT;kern_return_tkernReturn=host_statistics(mach_host_self(),HOST_VM_INFO,(host_i

2、nfo_t)&vmStats,&nfoCount);if(kernReturn!=KERN_SUCCESS){returnNSNotFound;}return((vm_page_size*vmStats.free_count)/1024.0)/1024.0;}~〃獲取當(dāng)前任務(wù)所占用的內(nèi)存(單位:MB)-(double)usedMemory{taskbasicinfodatattasklnfo;mach_msg_type_number_tinfoCount=TASK_BASIC_INFO_COUNT;kern_retum_tkernRetum=tas

3、k_info(mach_task_self(),TASK_BASIC_INFO,(task_info_t)&tasklnfo,&infoCount);if(kernReturn!=KERN_SUCCESS){returnNSNotFound;}returntasklnfo.resident_size/1024.0/1024.0;}1、深拷貝和淺拷貝的理解?深拷貝拷貝的是內(nèi)容,淺拷貝拷貝的是指針。深拷貝和淺拷貝最大的區(qū)別就是子類對(duì)象的地址是否改變,如果子類對(duì)象的地址改變那么就是深拷貝。2、怎樣實(shí)現(xiàn)一個(gè)singleton的類。staticLOSingl

4、eton*shareinstance;+(LOSingleton*)sharedlnstance{@synchronized(self){//這個(gè)東西其實(shí)就是一個(gè)加鎖。如果self其他線程訪問,則會(huì)阻塞。這樣做一般是用來對(duì)單例進(jìn)行一個(gè)死鎖的保護(hù)if(sharelnstance==nil){shareinstance=[[superallocWithZone:NULL]init];}}returnsharelnstance;}〃第二種方式+(LOSingleton*)sharedInstanee{staticLOSingleton*sharedlns

5、tanee=nil;staticdispatch_once_tonceToken;//鎖dispatch_once(&onceToken,A{//最多調(diào)用一次sharedlnstance=[[selfalloc]init];});returnsharedlnstance;}3、什么是安全釋放?在對(duì)象release之后把指針置為nil2、RunLoop是什么?—個(gè)RunLoop就是一個(gè)時(shí)間處理的循環(huán),用來不停的調(diào)度工作以及處理輸入時(shí)間。使用runloop的目的是讓你的線程在有工作的時(shí)候忙于工作,而沒工作的時(shí)候處于休眠狀態(tài)。runloop的設(shè)計(jì)是為了減

6、少cpu無謂的空轉(zhuǎn)。3、什么是序列化和反序列化,可以用來做什么?如何在0C中實(shí)現(xiàn)復(fù)雜對(duì)象的存儲(chǔ)?如果你需要存儲(chǔ)一個(gè)復(fù)雜的對(duì)象的話,經(jīng)常要以二進(jìn)制的方法序列化這個(gè)對(duì)象,這個(gè)過程叫Archivingo如果一個(gè)對(duì)象需要進(jìn)行序列化,那么需要遵循NScoding協(xié)議,主要有兩個(gè)方法:-{id)initWithCoder:(NSCoder*)coder;//從coder中讀取數(shù)據(jù),保存到相應(yīng)變量中,即反序列化數(shù)據(jù)。-(void)encodeWithCoder:(NSCoder*)coder;//讀取實(shí)例變量,并把這些數(shù)據(jù)寫到code沖去,即序列化數(shù)據(jù)。4、寫一

7、個(gè)標(biāo)準(zhǔn)宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)?#definekMIN(X,Y)((X)>(Y))?(Y):(X)5、iphoneos有沒有垃圾回收機(jī)制?簡單闡述一下0C內(nèi)存管理。iphoneos沒有垃圾回收機(jī)制。垃圾回收機(jī)制用于在空閑時(shí)間以不定時(shí)的方式動(dòng)態(tài)的回收無任何引用的對(duì)象占據(jù)的內(nèi)存空間。6、簡述丿應(yīng)用程序按Home鍵進(jìn)入后臺(tái)時(shí)的生命周期,以及從后臺(tái)回到前臺(tái)時(shí)的生命周期?應(yīng)用程序的狀態(tài):Notrunning未運(yùn)行,程序沒啟動(dòng)Inactive未激活,程序在前臺(tái)運(yùn)行,不過沒接受到事件,沒有事件處理的狀態(tài)下通常處于這個(gè)狀態(tài)。Active激活程序

8、在前臺(tái)并且接收到了事件Backgound后臺(tái)程序在后臺(tái)而且能執(zhí)行代碼,大多數(shù)程序進(jìn)入這個(gè)狀態(tài)后會(huì)在在這個(gè)狀態(tài)上停留一會(huì)。S

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。