技術(shù)-已面試題面霸寶典_第1頁
技術(shù)-已面試題面霸寶典_第2頁
技術(shù)-已面試題面霸寶典_第3頁
技術(shù)-已面試題面霸寶典_第4頁
技術(shù)-已面試題面霸寶典_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

算法題:檢測兩條鏈表是否相交,是則返回第一個交點,否則返回NULL。node*detect_intersect_link(node*first_link,node*second_link2 3 4 cellForRowAtlndexPath:(NSIndexPath*)indexPath{staicNSString*CellIdentifier=UITableViewCell*cell=[tableViewdequeueReusableCellWithIdentifier:If(cell==Cell=[[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:CellIdentifier]autorelease];}//Configurethecell…returecell;}5 Xcode項目 6 編程題:假設(shè)某一個生物每B年繁殖一次,一次繁殖N個只,是M年,編寫程序起初有X只生物,求T年之后生物的總數(shù)是多少?8 編程題:有個不相同的數(shù),從中隨機(jī)取N個數(shù),要求N個數(shù)互不相同//(intgetRand(intmin,intmax)表示獲取從最小值到最大值的{returnmin+(max–min)}9 10 11 當(dāng)程序運行過,按下home鍵以后,iOS程序會調(diào)用哪個12 13 std:string&{if(check>=str=“checkok”;str=“check}14 {inta[5]=int*ptr=(int*)(&a+1);printf(“%d,%d,*(a+1),*(ptr-1)”;}15 在應(yīng)用中如何保存數(shù)據(jù)16 下面哪個方法可以比較兩個NSS他ring*str1,*str2的異同if(str1=B.if([str1if(str1&&if([str1length]==[str217 18 19 20 21 22 什么是key不可以隱藏的那個23 24 25 A 輸入設(shè)B 輸出設(shè)C 運算D 控制E 電26 27 28 對一個名為testObj的NSObject,下列各組中相互等價語句[testObjretain][testObjautorelease[testObjreleaseNSDeallocateObject[testObjretainNSShouldRetainWithZone[testObjautorelease]與[NSAutoreleasePooladdObect:testObj]; 已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前30 以下多線程對int型變量X的操作,哪個不需要進(jìn)行同步A.x=y;D.x=E、A、D、ApacheLincense34、weakfor(inti=0;i<someLargeNumber;{ *string=@“Abc”;string=[stringlowercaseString];string=[stringstringByAppendingString:@“xyz”];NSLog(@“%@“,string);}是藍(lán)色的,然后讓navigationbar的背景是透明的,就這樣navigationbar也變成藍(lán)色的了52interface55、關(guān)鍵字const有什么含意?修飾類呢?static的作用,用于類呢?還有externc的作用#ifndef#define#ifdefextern"C"{#ifdef}#endif/*INCvxWorksh61、cocoatouch74你在開發(fā)項目中時用到了哪些數(shù)據(jù)方式中常見的方式有哪些各有什么區(qū)別83、閱讀器,如果要一個文本文件,請問你是如何處理編碼問題的?另外像pdf格式92 對象的retaincount分別是多少? =[[alloc]init];count1 98、在一個對象的方法里面:=“object”;和name=”ject”有什么不同嗎?{intint*ptr=(int*)(&a+1);}104、類變量的@protected,@private,@public,@package各有什么含義中116、寫一個ObjectiveC中定義及使用委托的例子118、ObjectiveC中UIView屬性的frame和bounds的區(qū)別-(void)setName:(NSString*)name{[mynamerelease];[nameretain];myname=} :TCP多了一些糾錯碼包裝,DUP糾錯和A、B、F、inta,floatb;struct(inta1;shorta2;doublea3;)C;struct(doublea1;shorta2;inta3;)D;sizeof(a)=sizeof(b)=sizeof(C)=sizeof(D)139VoidGetMemory(charP=(char*)mamlloc(100}voidTest(void){char*str=NULL;GetMemory(str);Strcpy(str,”oworld”);printf(str);VoidGetMemory(char*p,intnum){P=(char*)mamlloc(num);}voidTest(void){char*str=NULL;GetMemory(&str,100);Strcpy(str,”o”);printf(str);char*GetMemory{charp[]=“oword”;returnp;}void{char*str=NULL;str=GetMemory();printf(str);}145KVC和KVO是什么?有什么特點?KVO都能觀察什么屬性?KVO怎么觀察數(shù)銀島》146、NSString*str=@“ss”;和NSString*str=[[NSStringalloc]initWithString:@”ss”(面試題部分147、SEL@selectorperformSelectormainThread[selffunc([selfperformSelector:func()148、NSOperationNSOperationqueueJAVA149、OCexceptionCPUC++中又什么類似的方法?150、內(nèi)存管理的幾條原則時什么?按照默認(rèn)法則.那些關(guān)鍵字生成的對象需要手動釋放?在和property結(jié)合的時候怎樣有效的避免內(nèi)存?151notificationCenter152、怎樣實現(xiàn)一個singleton153、什么是序列化或者Acrchiving,copy154、在上有兩件事情要做,請問是在一個線程里按順序做效率高還是兩個線程里做155、runloop是什么?在主線的某個函數(shù)里調(diào)用了異步函數(shù),怎么樣block當(dāng)前線程,timertouch156、你是否接觸過OC157、賬號登錄驗證以及賬號加密保存?聊聊所用技術(shù)邏輯(因為我有漢口銀行項目(算法【AES、MD5、3DES+BASE64d】方面簡單進(jìn)行1-2APP涉及到較多的登錄和安全需求,而且目前最賺錢的小型APP項目多為金融類或者159、處理方面的知識,因為你說你的項目做過網(wǎng)絡(luò)請求,做過數(shù)據(jù)緩存,對方一定會問160、兩個視圖控制器之間的傳值如何做到的?如果是數(shù)組(使用屬性傳值161、ios4、5、6開口講普通話,通過iCloud體驗樂趣,Passbook電子票券管理,隨時隨地的FaceTime,功能增強(qiáng),SafariMail應(yīng)用新增VIP,萬能輔助:更強(qiáng)大等等了162、一個tableView這道題的答案在QQ群里說的是可以。163、UIViewController1、 2、init 3、 從nib載入視圖,這一步不需要去。除非沒有使4、 5、 6、 1、 2、 視圖被銷毀,此時需要在init和viewDidLoad中創(chuàng)建的 本視圖的所有子視圖將被銷毀,以釋放內(nèi)存,此時開發(fā)者需要手動對viewLoadviewDidLoad164、ObjectC中創(chuàng)建線程的方法是什么?如果在主線執(zhí)行代碼,方法是什么?如果想延線程創(chuàng)建有三種方法:使用NSThread創(chuàng)建、使用的dispatch、使用子類化的NSOperation,NSOperationQueueperformSelectorOnMainThread,如果想延時執(zhí)行代碼可以用165、ARC自動技1>dealloc[superdealloc]2>dealloc1>retain2>int\float)assign3>copy還是copy4>如果2個對象循環(huán),一端用strong,一端用weak5>weak,weakassignARC@autoreleasepool166、聊聊(筆試題部分168、ios平臺怎么做數(shù)據(jù)的持久化?coredata和有無必然聯(lián)系?coredata是一個關(guān)屬性列表、對象歸檔、NSUserDefault、3和Core169、下面代碼片段是否存在問題:(有問題請描述問題。無問題請寫出輸出結(jié)果)NSString*tmpString=nil;IntstrLength=[tmpStringlength];NSLog(@”%d”,strLength);170、有一個剛剛創(chuàng)建的對象,把它們添加到一個可變數(shù)組中,如果釋放這個對象,會發(fā)生什171、viewDidUnload172、viewDidAppearviewWillDisappear@implementation-(void)setAge:(int)newAge{self.age=newAge;}174、什么是retain175、以下每行代碼執(zhí)行后,對象的retaincount分別是多*=[[alloc]init];[retain];[[176、這段代碼有什么問題,如何修改for(inti=0;i<someLargeNumber;{NSString*string=string=[stringstring=[stringNSLog(@“%@”,}177、ViewControllerloadView,viewDidLoad,viewDidUnload分別是在什么時候調(diào)用ViewController178、for(intindex0;index20;indexNSString*tempStr=@”tempStr”;NSNumber*tempNumber=[NSNumbernumberWithInt:2];}178、ARC179、類別是什么?和分類有何不同?180、IOS181、方法和選擇器有何不同?182、OBC中有無回收機(jī)制?和ARC一樣么183、多線程:我個人覺得傳授多線程方面的知識時有些地方不是講解清楚,比如講NSOperationCGDNSOperationNSOperationqueueJAVA的線程池類似,操作和操作隊列的概念。而講的的一個主要特點也是group184、一個視圖控制器中嵌入兩個tableview185、Object-cCategory繼承;CategoryCategoryCategory186、nonatomic atomic是什么?有什么異同?為什么創(chuàng)建變量時要用到這兩個詞修飾?187、描述一下iOSSDKMVCMVCiOSSDKViewViewController都是控制層,由它負(fù)責(zé)控制視圖,模型數(shù)據(jù)。188、Object-Cobjective-c189、自動釋放池是什么,如何工作?190、FoundationApplicationKit舉例:NSFileManagerNSWorkspacecategory更高的優(yōu)先級。類別主要有3個作用:191、類別和類擴(kuò)展的區(qū)別?以下是《面試題目冒泡排序快速排序插入排序排序OC塊代碼排序。(冒泡)實現(xiàn)兩個for循環(huán),時間復(fù)m*m-1A問B你知道這個兩個數(shù)字的嗎 BA那你知道這兩個數(shù)字嗎A綠色有幾張?《面試題目》199200、B201202、linux-[receivermessage]:unrecognlizedselectorsenttoinstance204、iOSNSThread、NSOperationcoocos2dscheduleUpdate()就是參考NSRunLoop實現(xiàn)的觸摸事件分發(fā)和TimerC、ARCautoreleasepoolD、ARC環(huán)境下不能在iOS5206NSString*_name的-(void)settName:(NSString*)name-(void)setName:(NSString211、從前有個,也雇傭了一個工人,工人的薪資是7天一根金條,但是金條有6個均等分62213、LBS定位的三種方式B、D、VoidexamleC_addBlockToArray(NSMutabelArray*array){[arrayaddObject:^{}A、所用的開銷要比NSTread大B、可以在子線修改UI元素228nonatomic、atomic、copy、assignretain?NSString*strTest=NSString*stra=[NSStringstringWithFormat:@“str.%@”,strTest];[strTestretainCount]=[straretainCount]229、Differencebetweenshallowcopyanddeepcopy?淺和深的區(qū)別答案:淺層:只指向?qū)ο蟮闹羔?,而不對象本身。:對象本身。意思就是說我有個A對象一份后得到A_copy對象后對于淺來說,A和A_copy指向的是同一個內(nèi)存資源,的只不過是是一個指針,對象本身資源還是只有一份,那如果的一個思想。深就好理解了,內(nèi)存中存在了兩份獨立對象本身。用網(wǎng)上一哥們通俗的話將就是:淺好比你和你的,你,你的也深好比你和你的克隆人,你完230、Whatisadvantageofcategories?Whatisdifferencebetweenimplementingacategoryandinheritance?類別的作用?繼承和類別在實現(xiàn)中有何區(qū)別?答案:category能刪除修改。并且如果類別和原來類中的方法產(chǎn)生名稱,則類別將覆蓋原來的方法,因為3(1)將類的實現(xiàn)分散到多個不同文件或多個不同框架中。(2)創(chuàng)建對私有方法的前向。(3)向?qū)ο筇砑臃钦絽f(xié)議。繼承可以增加,231、Differencebetweencategoriesandextensions?答案:categoryextensions實現(xiàn)的。extensionsCategory。232、Differencebetweenprotocolinobjectivecandinterfacesinjava?obcjava答案:OBC中的有2層含義,定義為formal和informalprotocol。前者和Java接口informalprotocol也寫在了學(xué)習(xí)里“非正式協(xié)議概念其實就是類別的另一種表達(dá)方式“這里有一些你可能希233、WhatareKVOand答案:kvc:鍵-值編碼是一種間接對象的屬性使用字符串來標(biāo)識屬性,而不是通過調(diào)用存取方法,直接或通過實例變量的機(jī)制。很多情況下可以簡化程序代碼。apple文檔其實給kvo:鍵值觀察機(jī)制,他提供了觀察某一屬性變化的方法,極大的簡化了代個buttoncpp][selfaddObserver:selfforKeyPath:@"highlighted"options:0context:nil];#pragmamarkKVO*)keyPathofObject:(id)objectchange:(NSDictionary*)change*)context if([keyPathisEqualToString:@"highlighted"] [self 對于系統(tǒng)是根據(jù)eypathkvc對于kvc機(jī)制如何通過key尋找到value:“當(dāng)通過KVC調(diào)用對象時,比如:[selfvalueFoKey:”someey”omeKeyomeKey-(d)valuForUnefineKey如果這個方法還是沒有被實現(xiàn)的話,程序會拋出一個NSUndefnedKeExcepion異常錯誤。 注Key-ValueCoding查找方法的時候不僅僅會查找someKey這個方法,還會查找getsomeKey這個方法前面加一個get,或者_(dá)someKey以及_getsomeKey這幾種形式。同時,查找實例變量的時候也會不僅僅查找someKey這個變量,也會查找_someKey這個變量是 設(shè)計valueForUndefinedKey:方法的主要目的是當(dāng)你使用-(id)valueForKey方法下面的兩個例子說明了這樣做的好處?!皝碇羉ocoa,這個說法應(yīng)該挺有道理。因為我們知道button卻是存在一個highlighted實例變量.因此為何上面我們只是add一個相關(guān)的keypath就行了,可以按照kvc查找的邏輯理解,就說的過去了。234、Whatispurposeofdelegates?的作用:,答案的目的是改變或傳遞控制鏈。允許一個類在某些特定時刻通知到其他類,而不需要獲取到那些類的指針??梢詼p少框架復(fù)雜度。另外一點可以理解為java中的回調(diào)機(jī)制:,235、WhataremutableandimmutabletypesinObjectiveC?obc236、Whenwecallobjectivecisruntimelanguagewhatdoesitmean?我們說的obc繼承了life后,實現(xiàn)各自的eat,但是調(diào)用是我們只需調(diào)用各自的eat方法。也就是不同的對237、whatisdifferencebetweenNSNotificationandprotocol?業(yè)術(shù)語了~。但是簡單分析下通知和的行為模式,我們大致可以有自己的理解簡單來說,通知的話,它可以一對多,一條消息可以發(fā)送給多個消息接受者。按我們的理解,到不是務(wù)。只是對于不同間,的事物對象都是不一樣的,一一對應(yīng),不可能說明天要處理A要一個發(fā)布會人發(fā)出處理發(fā)布會的消息后別稱B的發(fā)布會了但是通知就不一樣,他只關(guān)心發(fā)出通知,而不關(guān)心多少接收到感要處理。因此控制鏈(has-a從英語單詞大致238、Whatispushnotification?11.Polymorphism239、Singleton?架類等。進(jìn)一步點,考慮下如何在多線程單例時的安全性。240、Whatisresponderchain?化了嚴(yán)重懷疑題目出到越后面就越籠統(tǒng)。241、Differencebetweenframeandbounds?framebounds242、Differencebetweenmethodandselector?selectormethod243、IsthereanygarbagecollectionmechanisminObjectiveC.?OBC的回收機(jī)制OBC2.0Garbagecollection,iOSobjective-carc機(jī)制搞混就好了。求~~245、NSOperation答案:存放NSOperation的集合類。操作和操作隊列,基本可以看成java中的線線程池的iosqueue,但是卻并來說,先進(jìn)先出的概念是Afunc添加進(jìn)隊列,Bfunc緊跟著也進(jìn)入隊列,Afunc先執(zhí)行這個是必對于A比BB近,線程池中的線程,誰先啟動是不定的。”瞬間覺得這個queue名字有點人了,還不如pool~綜合一點,我們知道他可以比較大的用處在于可以幫組多線程編程就好了。246、Whatislazy的一個列子就是tableView中的加載顯示了。一個延時載避免內(nèi)存過高一個異步加載,247、Canweusetwotableviewcontrollersononeviewcontroller?tableviewViewtableViewControllerUIViewController,TabbarController那樣的感覺。中所有的類都是NSObject的子類,多繼承在這里是用protocol委托來實現(xiàn)的。250、#import#includeimport<>#import""要使用#importimport#include251、類變量的@protected,@private,@public,@package各有什么含義252、id的對象有什么特性答案:id253、MVC是什么?有什么特性?為什么在上被廣泛運用答案:MVC254、對于語句NSString*testObject=[[NSDataalloc]init];testObject在編譯時和運258exceptionCPUC上沒有GC。開發(fā)的時候沒有回收機(jī)制。在回收環(huán)境中,release是一個空操作。因此,NSAutoreleasePool提供了drain方法,在(如果自上次回收以來分配的內(nèi)存大于當(dāng)前的閾值。因此,在通常情況下,您應(yīng)該使263for(intindex=0;index<20;index++){NSString*tempStr=@”tempStr”;NSNumber*tempNumber=[NSNumbernumberWithInt:2];}property結(jié)合的時候怎樣有效的避免內(nèi)存?265、在一個對象釋放前.如果他被加到了notificationCenter中.不在266singleton268答案:進(jìn)線程都是由操作系統(tǒng)所體會的程序運行的基本單元,系統(tǒng)利用該基本單元實現(xiàn)系線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨立的地址空間,一個線程有自己的堆棧和局部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進(jìn)269、在上有兩件事情要做,請問是在一個線程里按順序做效率高還是兩個線程里做效率timertouch271ios平臺怎么做數(shù)據(jù)的持久化?coredata和有無必然聯(lián)系?coredata是一個關(guān)系型iOS中可以有四種持久化數(shù)據(jù)的方式:屬性列表、對象歸檔、3和CoreData;coredataappcoredataappcoredatacoredata內(nèi)置的數(shù)據(jù)庫。coredata將你app的模型層放入到一組定義在內(nèi)存中的數(shù)據(jù)對象。coredatacoredataappcoredatamacosx中庫,它是一個輕量級功能強(qiáng)大的關(guān)系數(shù)據(jù)引擎,也很容易嵌入到應(yīng)用程序??梢栽诙鄠€平臺使用,是一個輕量級的嵌入式sql數(shù)據(jù)庫編程。與coredata框架不同的是,是使用程序式的,sql的主要的API來直接操作數(shù)據(jù)表。CoreData不是一個關(guān)系型數(shù)據(jù)庫,也不是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。雖然CoreDta支持作為一種類型,但它不能使用任意的數(shù)據(jù)庫。CoreData在使用的過程種自己創(chuàng)建這個數(shù)據(jù)庫。CoreData272、闡述一個nil對象從interfacebulider產(chǎn)生,到載入程序運行空間,最后被釋放時所經(jīng)嗎?kvo274、unix通信的雙方通過查找特定下特定類型的文件(稱鎖文件)來完成進(jìn)程間對臨界資 模板(Templatedatasourcedelegatecomposition,containerview觀察者模式observer,UIResponder52如果要開發(fā)一個類似eclipse的軟件,支持插件結(jié)構(gòu)。且開放給第開發(fā)。你會怎樣去設(shè)277、{intint*ptr=(int*)(&a+1);}答認(rèn)為加一個a數(shù)組的偏移,是偏移了一個數(shù)組的大?。ū纠?個int,int*)(&a+1ptr&(a[5])a+5型的指針+1之后增加的大小不同。a長度為5int數(shù)組指針,所以要加5*sizeof(int)所以ptr實際是a[5],但是prt與(&a+1)類型是不一樣的(這點很重要),所以prt-1只會減去&a是對象(數(shù)組)首地址,a+1是數(shù)組下一元素的地址,即a[1],&a+1是下一個對象的地址,即278、以下為WindowsNT下的32位C++程序,請計算sizeof的值voidFunc(charstr[100]){sizeof(str)=?}void*pmalloc(100);sizeof(p)=?Funccharstr[100]WindowsNT32(占用內(nèi)存的大小)4字節(jié),故sizeof(str)、sizeof(p4。279、-(void)*getNSString(constNSString* inputString=@"Thisisamaintest\n";return;}-{NSStringNSString*aString=[NSStringstringWithString:@"%@",getNSString(a)];NSLog(@"%@\n",aString);}最后問輸出的字符串:NULL,output 原子操作信號量機(jī)制 答案:資源競爭及進(jìn)程推進(jìn)順序4281管理方式:memoryleakoverflow存區(qū)域。這是由于系統(tǒng)是用鏈表來的空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方C/C++函281模型的性質(zhì)是通過一個簡單的鍵(通常是個字符串)鍵路徑是一個由用點作分隔符的鍵組成的字符串,用于指定接在一起的對象性質(zhì)序列。一個任意深度的路徑,使其指向相關(guān)對象的特定屬性。282、cobj-c1)obj-c譯器處理后綴為m文件時,可以識別obj-cc的代碼,mm件可以識別obj-c,c,c++代碼,但cpp文件必須只能用c/c++代碼,而且cpp文件include的頭文件中,也不能出現(xiàn)objccpp只是cpp2)在mm件中混用cpp直接使用即可obj-ccpp不是問題3)cpp中混用objc實就是使用obj-c編寫的模塊是我們想要的。如果模塊以類實現(xiàn),那么要按照cppclass的標(biāo)準(zhǔn)寫類的定義,頭文件中不能出現(xiàn)obj-c的東西,包括#importcocoa的。實現(xiàn)文件中,即類的實現(xiàn)代碼中可以使用obj-c的東西,可以import,只數(shù)內(nèi)部可以用obj-c,但后綴還是mm或m。cpp文件和cppinclude件中不包含obj-c的東西就可以用了,cpp混用obj-c的關(guān)鍵是使用接口,而不能直接使用實現(xiàn)代碼,實際上cpp混用的是obj-c編譯后的o個東西其實是無差別的,所以可以用。obj-ccpp.283量"部分)的形式保有其動作消息的目標(biāo)。284、cocoatouchOS應(yīng)用程序的基礎(chǔ)CocoaTouch框架重用了許多Mac系統(tǒng)的成熟模式,但是它地專注于觸摸的接口和優(yōu)化。UIKit為您提供了在OS上實現(xiàn)圖形,事件驅(qū)動程序的基本MacOSXFoundationCocoaTouch具有和用戶接口一致的特殊設(shè)計有了UIKit,您可以使用OS上各色俱全的框架除了UIKit外,CocoaTouch包含了創(chuàng)建世界一流應(yīng)用程序需要的所有框架,從三維圖形,到專業(yè)音效,甚至提供設(shè)備API以控制頭,或通過GPS獲知當(dāng)前位置。CocoaTouchObjective-C也在需要時提供基礎(chǔ)的C語言API來直接系統(tǒng)。這些框架包括:CoreCoreAnimation,您就可以通過一個基于組合獨立圖層的簡單的編程模型來創(chuàng)建豐富的用CoreCoreAudio是,處理和錄制音頻的專業(yè)技術(shù),能夠輕松為您的應(yīng)用程序添加強(qiáng)大的音頻功CoreCocoaTouch21、CoreAudio23、MediaLibrary24、AVCore2、CoreAnimation3、OpenGLES4、Quartz2D13、BSDSockets10、AddressBook11、CoreLocation12、MapKit13、StoreKit如果您通過分配和初始化(比如[[MyClassalloc]init])NSObject的便利方法new時也同樣適用.ojc-c是通過一種"referringcounting"(計數(shù))的方式來管理內(nèi)存的,對象在開始配內(nèi)存(alloc)的時候計數(shù)為一,以后每當(dāng)碰到有copy,retain的時候計數(shù)都會加一,被系統(tǒng)銷毀.2.NSAutoreleasePool就是用來做計數(shù)的管理工作的,這個東西一般不用你會在對象的使用真正結(jié)束的時候才做計數(shù)減一.(type)className...(className過程提供對象的分配信息。必須釋放該實例。工廠方法則可以避免為可能沒有用的對象盲目分配內(nèi)存。290Foundation和ApplicationKit框架中的一些類只允許創(chuàng)建單件對象,即這些類在當(dāng)前進(jìn)的唯一實例。舉例來說,NSFileManager和NSWorkspace類在使用時都是基于進(jìn)程進(jìn)行單件對象的實例化。當(dāng)向這些類請求實例的時候,它們會向您傳遞單一實例的一個,如果該實例還NSWorkspace而不是多個實例;如果將來某一天可能有多個實例,您可以使用單件實例機(jī)制,而不是工廠方291動態(tài)綁定將調(diào)用方法的確定也推運行時。在編譯時,方法的調(diào)用并不和代碼綁定在一起,Objective-C292、obj-cobjc優(yōu)點 1) 2) 3)動態(tài)識 4)指標(biāo) 6)不是一個過度復(fù)雜的C衍生語 7)Objective-CC++缺點 1)不支援命名空 (如內(nèi)聯(lián)函數(shù)等293readwrite,readonly,assign,retain,copy,nonatomic@property是一個屬性,擴(kuò)號內(nèi)支持以下幾個屬性:1getter=getterNamesetter=setterName,設(shè)置setter與getter的方法名2,readwrite,readonly,設(shè)置可供級別2,assign,setter方法直接賦值,不進(jìn)行任何retain操作,為了解決原類型與環(huán)循問題3,retain,setter方法對參數(shù)進(jìn)行release舊值再retain新值,所有實現(xiàn)都是這個順序再Copy出新的對象,retainCount為1。這是為了減少對上下文的依賴而引入的機(jī)制。5,nonatomic,非原子性,不加同步,多線程并發(fā)會提高性能。注意,如果不加此屬性,294、ObjCalloc語義相反的方法是deallocrelease?與retain語義相反的方法dealloc還是release,為什么?需要與alloc使用的方法是dealloc還是release,為allocdealloc語意相反,alloc是創(chuàng)建變量,dealloc是釋放變量。retain對應(yīng)release,retain保留一個對象。調(diào)用之后,變量的計數(shù)加1。或許不是很明顯,在這有例為-(void)setName:(NSString*)name{[nameretain];[mynamerelease];myname=name;}NSString*newname=[[NSStringalloc]initWithString:@"John"];[aClasssetName:newname];[newnamealloc1allocrelease另外release一個變量之后的值最好是后面緊接著再var=<>=“object”;name=”object”@implementation-(void)setAge:(int)newAge{self.age=newAge;}297retain 對象的retaincount分別是多* =[[alloc]init]; assign簡單數(shù)據(jù)類型,如NSInteger,double,bool,retaincopy用戶對象,copya指向一個對象,b想指向同樣的對象的時候如果用assign,a果釋調(diào)用bcrash,a和atomicatomic,setterif(property!=newValue){ [propertyrelease]; property=[newValueretain]; 301、autoreleaserelease答:autoreleasereleaseAutorelease,系統(tǒng)只是ObjectAutoreleasepoolpoolpoolObjectReleaseRunloop,Autoreleasepool,這樣所有releasepool會構(gòu)成一個象CallStackRunloopAutoreleasepoolpoolObject(autorelea

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論