版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Differencebetweenshallowcopyanddeepcopy?淺復(fù)制和深復(fù)制的區(qū)別?答案:淺層復(fù)制:只復(fù)制指向?qū)ο蟮腁A_copy對象后,對于淺復(fù)制來說,AA_copy指向的是同一個內(nèi)存A_copy執(zhí)行了修改操作,A引想。深復(fù)制就好理解了,內(nèi)存中存在了兩份獨(dú)立對象本身。用網(wǎng)上一哥們通俗的話將就是:淺復(fù)制好比你和你的影子,Whatisadvantageofcategories?Whatisdifferencebetweenimplementingacategoryandinheritance?類別的作用?繼承和類別在實現(xiàn)中有何區(qū)別?答案:category3(1)將類的實現(xiàn)(2)創(chuàng)建對私有方法的前向引用。(3)向?qū)ο筇砑臃钦絽f(xié)議。繼承可以增Differencebetweencategoriesandextensions?類別于后者可以添加屬性。另外后者添加的方法是必須要實現(xiàn)的。extensionsCategory。e n l n e c esina?obc中的協(xié)議和ja中的接口概念有何不同?答案:OBC中的代理有2層含義,官方定義為formal和ll。前者和a接口一樣。ll中的方法屬于設(shè)計模式考慮范疇,不是其實關(guān)非正式協(xié)議概念其實就是類別的另一種表達(dá)方式“這里有一些你可能希望實現(xiàn)的方法,你可以使用他們更好的完成工作。這么"現(xiàn)在來看,其實l已經(jīng)開始對兩者都統(tǒng)一和規(guī)范起來操作,因為資料中說非正式協(xié)議使用ee修飾,現(xiàn)在我們看到協(xié)議中兩個修飾詞:“必須實現(xiàn)e”和“可選實現(xiàn)tional)。WhatareKVOandKVC? 答案:kvc:鍵-值編碼是一種用存取方法直接或通過實例變量訪問的機(jī)制。很多情況下可以簡化程序代碼。apple文檔其實給了一個很好的例子。大的簡化了代碼。具體用看到嗯哼用到過的一個地方是對于按鈕點(diǎn)擊變化狀態(tài)的的監(jiān)控。比如我自定義的一個button[cpp] }keypathkvckeyvalue:“當(dāng)通過KVC[selfvalueForKey:@”someKey”]someKey這個方法,如果沒找到,會(iar-被實現(xiàn)的話,程序會拋出一個NSUndefinedKeyException異常錯誤。(注:Key-ValueCoding查找方法的時候,不僅僅會查找someKey這個方法,還會查找getsomeKey這個方法前面加一個get,或者_(dá)someKey以及_getsomeKey這幾種形式。同時,查找實例變量的時候也會不僅僅查找someKey這個變量也會查找_someKey這 設(shè)計valueForUndefinedKey:方法的主要目的是當(dāng)你使用-(id)valueForKey方法從對象中請求“來至cocoa,這個說法應(yīng)該挺有道理。因為我們知道button卻是存在一個highlighted實例變量.因此為何上面我們只是add一個相關(guān)的keypath就行了,可以按照kvcWhatispurposeofdelegates?java中的回調(diào)監(jiān)聽WhataremutableandimmutabletypesinObjectiveC?obcWhenwecallobjectivecisruntimelanguagewhatdoesitmean?obc是動態(tài)運(yùn)行時語言是什么意思?設(shè)生物類(life)都用有一個相同的方法-eat;那人類屬于生lifeeat,但是調(diào)用是我們只需調(diào)用各自的eat方法。也就是不同的對(eat這個選擇器。 protocol?通知和協(xié)議的不同之處?答案:協(xié)議有控制鏈(has-a)的關(guān)系,通知沒有。首先我一開始也不太明白,什AB的發(fā)布會了。但是通趣要處理。因此控制鏈(has-a從英語單詞大致可以看出,Whatispushnotification?Polymorphism?關(guān)于多態(tài)性答案:多態(tài),子類指針可以賦值給父類。這個題目其實可以出到一切面向?qū)ο笳Ze?對于單例的理解答案:,2題目其實的場景或是你編程中碰到過運(yùn)用的此種模式的框架類等。進(jìn)一步點(diǎn),考慮下如何在多線程訪問單例時的安全性。Whatisresponderchain?說說響應(yīng)鏈答案:事件了嚴(yán)重懷疑題目出到越后面就越籠統(tǒng)。Differencebetweenframeandbounds?frame bounds有什么不同?答案:frameview在父bounds指的是:該view在本身坐標(biāo)系統(tǒng)中的位置和大Differencebetweenmethodandselector?方法和選擇器有何不同?答案:selector是一個方法的名字,method是一個組合體,包含了名字和實現(xiàn).詳情可以看apple文檔。IsthereanygarbagecollectionmechanisminObjectiveC.?OBCOBC2.0有objective-c對于內(nèi)存管理都是手動操作的,但是也有自arc機(jī)制搞混就好了。求更多~~NSOperationqueue? 答案:存放NSOperation的集java中的線程和線iosqueue,但是卻并不是帶有隊列的概Afunc添加進(jìn)隊列,Bfunc緊跟著也進(jìn)入隊列,AfuncBfuncAfunc完全操作完以后B才開始啟動并且執(zhí)但是轉(zhuǎn)念一想其實可以參考銀行的取票和叫號系統(tǒng)。因此ABB率先執(zhí)行完操作,我們亦然可以感性認(rèn)為這還是一個隊列。但是后來看到一票關(guān)于這“因為兩個操作提交queuepool~綜Whatislazyloading? 最簡單的一個列子就是tableView中圖片的加載顯示了。n e e o w s n ? 是否在一個視圖控制器中嵌入兩個tablviw控制器?答案:一個視圖控制只提供了一個w視圖,理論上一個r也不能放吧,只能說可以嵌入一個vw視圖。當(dāng)然,題目本身也有歧義,如果不是我們定性思維認(rèn)為的r,而是宏觀的表示視圖控制者,那我們倒是可以把其看成一個視圖控制者,它可以控制多個視圖控制器,比如abanter那樣的感覺。 datasources?Howyouwillachievethis?tableView是否可以關(guān)聯(lián)兩個不同的數(shù)據(jù)源?你會怎么處理?答案:源關(guān)聯(lián)的代理方法里實現(xiàn)的。因此我們并不關(guān)心如何去關(guān)Object-c的類可以多重繼承么?可以實現(xiàn)多個接口么?重寫一個類的方式用繼承好還是分類好?為什么?Objective-c只支持單繼承,如果要實現(xiàn)多繼承的話,可以通過類別和協(xié)議的方式來實現(xiàn),cocoa中所有的類都是NSObject的子類,多繼承在這里是用protocol委托代理#import跟#include又什么區(qū)別#import<>跟#import""@class一般用于頭文件中m是需要使用#import而#import比起#include的好處就是類變量的@protectedidid是個很重要的類MVC是什么?有什么特性?為什么在iPhone上被廣泛運(yùn)用?答案:MVC設(shè)計模式考慮三種對象:模型對象、視用戶對其進(jìn)行編輯??刂破鲗ο笫菓?yīng)用程序的視圖對象和對于語句NSString*testObject=[[NSDataalloc]init];testObject在編譯時和運(yùn)行時分別是什么類型的對象?4.0objective-c3.1上運(yùn)行4.0c3.1propertyretain,copy,assgin的含義分別是什么?有什么區(qū)別?將其轉(zhuǎn)換成get/set方法怎么做?有什么注GC(垃圾回收有什么區(qū)別?iPhone上有GC么?[poolrelease]和[pooldrain]有什么區(qū)別?iPhone上沒有GCiPhone開發(fā)的時候沒有垃圾回收機(jī)制。在垃圾回收環(huán)境中,release是一個空操作。因此,NSAutoreleasePooldrain該方法的作用等同于調(diào)用release,但在垃圾回收環(huán)境中,于當(dāng)前的閾值drain而release來銷毀自動釋放池。for(intindex=0;index<20;index++){*tempStr=@”tempStr”;NSLog(tempStr); numberWithInt:2];NSLog(tempNumber);}這段代碼有設(shè)備上做大循環(huán)時自動釋放池是寫在循環(huán)內(nèi)好還是循環(huán)外property結(jié)合的時候怎樣在一個對象釋放前.如果他被加到了notificationCenter中.不在notificationcenterremove這個對象可能會出現(xiàn)singleton的類.什么是序列化或者Acrchiving,可以用來做什么,怎樣與copy結(jié)合,原理是什么?.線程與進(jìn)程的區(qū)別和聯(lián)系?答案:進(jìn)程和線程都是由操作系統(tǒng)所體會的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實現(xiàn)系統(tǒng)對應(yīng)用的并發(fā)性。程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空runloop是什么?在主線程中的某個函數(shù)里調(diào)用了異步事件,touch事件等.ios平臺怎么做數(shù)據(jù)的持久化?coredatasqlite有無必然聯(lián)系?coredata是一個關(guān)系型數(shù)據(jù)庫嗎?iOS中可以有SQLite3和CoreData;coredata可以使你以圖形界面的方式快速的定appcoredata提供了基礎(chǔ)結(jié)構(gòu)去處理常用的功能,例如保存,恢復(fù),撤銷和重做,允許你在app中繼續(xù)創(chuàng)建新的任務(wù)。在使用coredatacoredatasqlite數(shù)據(jù)庫。coredataapp的模型層放入到一組定義在內(nèi)存中的數(shù)據(jù)對象。coredata會追蹤coredataapp數(shù)據(jù)的改變進(jìn)行保存的時候,coredatamacosxsqlite庫,它是一個輕量級功能強(qiáng)大的關(guān)系數(shù)sqlitesqlcoredata框架不同的是sqlite是使用程序式的sqlAPI來CoreData不是一個關(guān)系型數(shù)據(jù)庫,也不是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。雖然CoreDta支持SQLiteSQLite數(shù)CoreDataCoreData支持對一、對多的關(guān)系。nilinterfacebulider產(chǎn)生,到載入程unix件)p1 timer庫中找到類似的嗎?(答案眾多,不知道哪個是對的模板(Template)datasourcedelegate接口都o(jì)bserverUIResponder都用了這個模{intint*ptr=(int*)(&a+1);}*(a+1)a[1],*(ptr-1)a[4],2.5,&a+1不是首地址+1a是偏移了一個數(shù)組的大?。?int,int*)(&a+1);ptr&(a[5]),a+5&a是數(shù)組指針,其類型為int(*)[5];1要根據(jù)指針類型加上一定的值,不同類型的指針+1之后增加的大小不同。a是長度為5的int數(shù)組指針,所以要加5*sizeof(int)ptra[5]prt與(&a+1)類型是不一樣的(這點(diǎn)很重要prt-1sizeof(int*),a,&a的地址是一樣的,但意思不一樣,a是數(shù)組首地址,也a[0]的地址,&a是對象(數(shù)組)首地址,a+1是數(shù)組a[1],&a+1a[5].的值voidFunc(charstr[100] sizeof(str void*p=malloc(100 sizeof(p)=,Funccharstr[100函數(shù)中數(shù)組名作32(占用內(nèi)存的大小4sizeof(str)、sizeof(p)4。55.-(void)*getNSString(constNSString inputString=@"Thisisamaintest\n";return;}-{NSString 最后問輸出的字符串:NULL,output答案:原子操作信號量機(jī)制自旋鎖管程,會合,分布4個必要條件工控制;對于堆來說,釋放工作由程序員控制,容易產(chǎn)生memoryleak。申請大?。簵#涸赪indows下,棧是向低地址擴(kuò)展的數(shù)據(jù)WINDOWS下,的常數(shù),如果申請的空間超過棧的剩余空間時,將提示overflownew/delete勢必會造成內(nèi)2alloca函數(shù)進(jìn)行分配,編碼技術(shù)用于進(jìn)行這樣的查找—它是一種間接訪問對象屬一個連接在一起的對象性質(zhì)序列。第一個鍵的性質(zhì)是由先度的路徑,使其指向相關(guān)對象的特定屬性。cobj-c1)obj-cmobj-ccmmobj-c,c,c++代碼,但cppc/c++cppinclude的objccppcpp2)mmcppobj-ccpp不是問題3)cppobjcobj-c編寫的模塊是我們想要的。如果模塊以類實現(xiàn),那么要按照cppclassobj-c的東西,包括#importcocoa的。實現(xiàn)文件中,即類的實現(xiàn)代碼中可obj-cimport,mm。如果c文件中c++obj-mmm。cppcppincludeobj-c的東西就可以用了,cppobj-c的關(guān)鍵是使用接口,cppobj-c編譯ccpp.cocoatouchiPhoneOS應(yīng)用程序的基礎(chǔ)CocoaTouch框架重用了許多Mac系統(tǒng)的成熟模式,但是它更多地專注于觸摸的接口和UIKit為您提供了在iPhoneOS動程序的基本工具,其建立在和MacOSX中一樣的FoundationCocoaTouchiPhone了UIKit,您可以使用iPhoneOS上的獨(dú)特的圖形接口控UIKit外,CocoaTouch包含了創(chuàng)建世界一流iPhone應(yīng)用程序需要的所有框架,從三維圖形,到專業(yè)音效,甚至提供設(shè)備訪問API以控制攝像頭,或通過GPS獲知當(dāng)前位置。CocoaTouch既包含只需要幾行代碼就可以完成全部任務(wù)的強(qiáng)大的Objective-C要時提供基礎(chǔ)的C語言API通過CoreAnimation,您就可以通過一個基于組合獨(dú)立圖CoreAudioCocoaTouchCoreMediaCoreCoreOpenGLQuartzBSDAddressCoreMapStoreobjc(比如[[MyClassalloc]init])的方NSObjectnew時也同樣適用.(將該對象的一個引用放入到最新的自動釋放池。它仍然是1.ojc-c是通過一種"referringcounting"(引用計數(shù))的方式來管理內(nèi)存的,對象在開始分配內(nèi)存(alloc)的時候引用計數(shù)為一,以后每當(dāng)碰到有copy,retain的時候引用計數(shù)都會加一,如果此對象的計數(shù)變?yōu)榱?,就會被系統(tǒng)銷毀.2.NSAutoreleasePool就是用來做引用計數(shù)的管理工作的,這個東西一般不用你管的.3.autoreleaserelease沒什么區(qū)別,只是引用計數(shù)減一的時機(jī)不同而已,autorelease會在放處理。這些方法的形式是(type)className(其中className不包括任何前綴。初始化合在一起,還可以為初始化過程提供對象的分配信類工廠方法的另一個目的是使類(NSWorkspace)提init...Foundation和ApplicationKit框架中的一些類只允許創(chuàng)建NSFileManager和NSWorkspace類在使用時都是基于進(jìn)則首先進(jìn)行實例的分配和初始化。單件對象充當(dāng)控制中心NSorkspace可以使用單件實例機(jī)制,而不是工廠方法或函數(shù)。消息的接收者和被調(diào)用的方法。運(yùn)行時的消息分發(fā)機(jī)制為isa指針定位對象的Objective-C代碼中做任何工作,就態(tài)綁定就會例行而透明地發(fā)生。obj-cobjc優(yōu)點(diǎn):1)Cateogies2)Posing3)動態(tài)識別4)指標(biāo)計算5)彈性訊息傳遞6)C衍生語言7)Objective-C與C++可混合編程 1)不支援命名空 eawrieeadonyassignetaincoynonaomic@property是一個屬性訪問聲明,擴(kuò)號內(nèi)支持以下幾個屬性:1,getter=getterName,setter=setterName,設(shè)置settergetter2,readwrite,readonly,設(shè)置可供訪問級別2,assign,setterretain操作,為了解決原類型與環(huán)循引用問題3,retain,setterreleaseretain新值,所有實現(xiàn)都是這個順序(CC上有相關(guān)資料)4,copy,setter方法Copyretainrelease,再Copy出新的對象,retainCount1。這是為了減少對上下文的依賴而引入的機(jī)制。5,nonatomic,非原子性訪ViewController的didReceiveMemoryWarning是在什么時候被調(diào)用的?(87題)ARCObjC中,與alloc語義相反的方法是dealloc還是releaseretaindeallocrelease,為什么?需要與alloc配對使用的方法是dealloc還是retainrelease,retain保留一個對象。調(diào)用之后,變量的計數(shù)加1。或許不是很明顯,在這有例為-(void)setName:(NSString*)name{[nameretain];[mynamerelease];myname=name;NSString*newname=[[NSStringalloc]initWithString:[aClasssetName:newname];alloccount;retaincount=2;newname,count=1,myname指向了newname。這也解釋了為什么需要調(diào)用[mynamerelease]myname賦新值的時候,釋放掉以retaindealloc對象計數(shù)器沒有釋放。allocreleasealloc這個函數(shù)調(diào)用1alloc之后,一定要調(diào)releasereleasevar=nil。<http:///>“object”;name@implementationPerson-(void)setAge:(int)newAge{self.age=newAge;}以下每行代碼執(zhí)行后,personretaincount分Person*person=[[Personalloc]init];[personretain];[person[person為什么很多內(nèi)置類如 delegateassignretainassignbcrash,copy的方式a和b各自有自己的內(nèi)存,retainassign的問題。另外:atomicnonatomic用來決定編譯gettersetter是否為原子操作。在多線程環(huán)境atomic,setter函數(shù)會變成下面這樣: 答:autoreleaserelease的調(diào)用延遲了,AutoreleaseAutoreleasepoolpoolpool中的會隱式創(chuàng)建一個Autoreleasepoolreleasepool會構(gòu)成一個象CallStack一樣的一個棧式結(jié)構(gòu),在每一個ObjetreleaseRunloopUI事件,什么是一個Runloop呢?一個UI事件,Timercall,delegatecallRunloop。for(inti=0;i<someLargeNumber;{NSString*string=string=[stringstring=[stringstringByAppendingString:@"xyz"];NSLog(@“%@”,string);}autorelease和垃圾回收機(jī)制(gc)有什么關(guān)系?IPhoneOS有沒有垃圾回收(gc)?ObjectiveCprotocalObjectiveCselector你可以理解@selector()就是取類方法的編號,他的行為基C語言的中函數(shù)指針,C語言中,可以把Objective-C的類不能直@selector語法來取.它的SEL(函數(shù)ObjectiveCcategory是什么Objective-C提供了一個非常靈活的類(Class)擴(kuò)展機(jī)制-類別(Category。類別用于對一個已經(jīng)存在的類添加方法例變量(InstanceVariables)。以放在一個已存在的類(類A)的定義文件中(.h)。這意味著另一個類(B)A的功能(A的.h文件)A存在的類別。iOSSDK中廣Notification?notificationnotification就可以當(dāng)前的某個觀察者的操作做完才能輪到他來操作,可以用NotificationQueue的方式安排觀察者的反應(yīng)順序,也可以在添加觀察者中設(shè)定反映時間,取消觀察需要在viewDidUnloaddealloc中都要注銷。給sender,notification可以針對one-
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江師范大學(xué)《規(guī)范字與書法》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州體育職業(yè)學(xué)院《視頻傳播實務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長春師范大學(xué)《社會治理》2023-2024學(xué)年第一學(xué)期期末試卷
- 榆林職業(yè)技術(shù)學(xué)院《戶外拓展與定向運(yùn)動》2023-2024學(xué)年第一學(xué)期期末試卷
- 食用菌栽培基質(zhì)廢棄物降解
- 碩士職場競爭力
- 秋分節(jié)氣與糧食安全
- 農(nóng)業(yè)創(chuàng)新路演
- 學(xué)校文化建設(shè)上墻標(biāo)語
- 會計辭職報告范文
- 華為經(jīng)營管理-華為市場營銷體系(6版)
- 2023年中國育齡女性生殖健康研究報告
- 鋼結(jié)構(gòu)加工廠考察報告
- 發(fā)電機(jī)檢修作業(yè)指導(dǎo)書
- 薪酬與福利管理實務(wù)-習(xí)題答案 第五版
- 廢舊物資處置申請表
- GB/T 37234-2018文件鑒定通用規(guī)范
- GB/T 31888-2015中小學(xué)生校服
- 質(zhì)量檢查考核辦法
- 云南省普通初中學(xué)生成長記錄-基本素質(zhì)發(fā)展初一-初三
- 外科醫(yī)師手術(shù)技能評分標(biāo)準(zhǔn)
評論
0/150
提交評論