資源描述:
《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