cocios面試題-objective一、答題_第1頁
cocios面試題-objective一、答題_第2頁
cocios面試題-objective一、答題_第3頁
cocios面試題-objective一、答題_第4頁
cocios面試題-objective一、答題_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余18頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

Objective_C2、#import和#include的區(qū)別是什么?#import<>#import""有什么區(qū)別?一般來說,導(dǎo)入objectivec的頭文件時(shí)用#import,包含c/c++頭文件時(shí)用#include。classA,classB都了classC,classD若classA與classB,就會(huì)報(bào)重復(fù)的錯(cuò)誤Category是類目。用類目好,因?yàn)槔^承要滿足aisab的關(guān)系,而類目只需要滿足ahasab的關(guān)系,局限性更小,你不,用CategoryCategory沒有*循 現(xiàn)在執(zhí)行[Arelease];[Brelease];此時(shí)創(chuàng)建對(duì)象的main函數(shù)已經(jīng)了自己對(duì)對(duì)象的所,但是此時(shí)A和B的計(jì)數(shù)都還提供工廠方法對(duì)該全局實(shí)例進(jìn)行,檢查該變量是否為nil,如果nil就創(chuàng)建一個(gè)新的實(shí)例,最后返回全局實(shí)在頭文件中,一般只需要知道被的類的名稱就可以了。不需要知道其的實(shí)體變量和方法,所以在頭文件使用assign:(NSInteger,CGFloat)和C數(shù)據(jù)類型(intfloat,double,char,)使用copy:希望獲得源對(duì)象的副本而不改變?cè)磳?duì)象內(nèi)容時(shí),對(duì)NSString使用retain:希望獲得源對(duì)象的所時(shí),對(duì)其他NSObject和其子readonly是只讀特性只會(huì)生成gettersetterassignsetter方法將傳入?yún)?shù)賦值給實(shí)例變量;僅設(shè)置變量時(shí);retainsetter方法將傳入?yún)?.id的對(duì)象有什么特性遵循CocoaTouch那些關(guān)鍵字生成的對(duì)象需要手動(dòng)?關(guān)鍵字allocnew Profile->Instruments->Time描述一下iOSSDK中如何實(shí)現(xiàn)MVCMVC是模型、試圖、控制開發(fā)模式,對(duì)于iOSSDK,所有的View都是視圖層的,它應(yīng)該獨(dú)立于模型層,由視圖控制層來控制。線程創(chuàng)建有三種方法:使用NSThread創(chuàng)建、使用的dispatch、使用子類化的NSOperation,然后將其加入NSOperationQueue;在主線程執(zhí)行代碼,方法是performSelectorOnMainThread,如果想延時(shí)執(zhí)行代碼可以用1、5的屏幕分辨率大小為1136*640屏幕分辨率:用于量度位圖圖像內(nèi)數(shù)據(jù)量多少的一個(gè)參數(shù)。通常表示成ppi(每英寸像素Pixelperinch)。屏幕物理尺寸2、structstrA{ inta; floatb; charc;}expA;printf("%ld", 輸出結(jié)果為12對(duì)齊的作和原因各個(gè)硬平臺(tái)對(duì)空間處上有很大不同。些平臺(tái)某些特類型的據(jù)能從某些特來損失比些平每次讀是從址開始如果個(gè)n(假設(shè)為32位如存放偶地址開的地方2字節(jié)進(jìn)行拼湊能得到該n據(jù)。顯在率上下很多。這是空間時(shí)間的弈。#progmapack@property參數(shù)1,參數(shù)2))(readwrite/readonly)原子性:(atomicity/nonatomic)原子性就是說一個(gè)操作不可以被中途cpu暫停然后調(diào)度,即不能被中斷,要不就執(zhí)行完,要不就不執(zhí)行.如果一個(gè)操作是原子性的,那么在多線程環(huán)境下,超文本傳輸協(xié)議(HTTP-Hypertexttransferprotocol)是分布式協(xié)作式超系統(tǒng)應(yīng)用之間的通信協(xié)議是(worldwideSMTP(SimplTransferProtocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制DNS是系統(tǒng)(NameSystem)的縮寫,是因特網(wǎng)的一項(xiàng)服務(wù),它作為可以將和IP地址相互的一個(gè)分SNMP(SimpleNetworkManagementProtocol,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)的前身是簡(jiǎn)單網(wǎng)關(guān)協(xié)議(SGMP),用來對(duì)通信線路進(jìn)行管layer)通信協(xié)議,由IETF的RFC793說明(specified)。UDP是UserDatagramProtocolOSI參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù),IETFRFC768是UDP的正式規(guī)范。、、@propertynonatomicretain)test*aTest;@property(nonatomic,copy)test*aTest;-(void)aTestreturn}==========@propertyretaintest*aTest;@property(copy)test*aTest;-{[aTestreturn[aTest}@property(nonatomic,retain)test*aTest;@property(retain)test*aTest;-(void)setaTest:(test*)newaTest{if(aTest!=newaTest){[aTestaTest=[newaTest}}==========@property(nonatomic,copy)test*aTest;@property(copy)test*aTest;-(void)setaTest:(test*)newaTest{if(aTest!=newaTest){[aTestaTest=[newaTest}}#10、JSON中{}代 ,[]代 {"people":{"Name":"Brett","lastName":"McLaughlin","":"aaaa"{"Name":"Jason","lastName":"Hunter","":{"Name":"Elliotte","lastName":"Harold","":"cccc"}JSON中代表對(duì)象,數(shù)據(jù)結(jié)構(gòu)為{key1:value1,key2:value2,key3:[]@interfacePeople:@property(nonatomic,copy)NSString*strName;@property(nonatomic,copy)NSString*strLastName;@property(nonatomic,copy)NSString*str;@interfaceJSonData:@propertynonatomic,retainNSMutableArray*arrPeople;//存放People@property(nonatomic,copy)NSString* cocoa中所有的類都是NSObject的子類 多繼承在這里是用protocol委托來實(shí)現(xiàn)的 在obj-c中通過委托來實(shí)現(xiàn).objective-c–類里面的方法只有兩種,靜態(tài)方法和實(shí)例方法@interfaceController{NSString}+(void)thisIsAStaticMethod;–(void)thisIsAnInstanceMethod;@end@interfaceController-(void)thisIsAPrivateMethod;可以用來修飾私有變量在分配方式:堆都是動(dòng)態(tài)分配的,動(dòng)態(tài)分配由alloca函數(shù)進(jìn)行分配線進(jìn)程的區(qū)別從內(nèi)存來{intint*ptr=(int*)(&a+1);}答&a+1不是首地址+1,a(本例是5int)int*ptr=(int*)(&a+1);&ainta5intprt-1sizeof(int*)WindowsNT32C++sizeofvoidFunc(charstr[100]{sizeof(str)=?}void*p=malloc(100);sizeof(p)=?這題很常見了,Funccharstr[100]個(gè)指針;在失去其內(nèi)涵的同時(shí),它還失去了其常量特性,可以作自增、自減等操作,可以被修改。WindowsNT32位平臺(tái)下,指針的長(zhǎng)度(占用內(nèi)存的大小)為4sizeof(str)、sizeof(p)都為4。還是考指針,不過我對(duì)cocoa的代碼還是不太熟-(void)*getNSString(constNSString*{inputString=@"Thisisamaintest\n";return;}-{NSStringNSString*aString=[NSStringstringWithString:@"%@",getNSString(a)];NSLog(@"%@\n",aString);}用預(yù)處理指令#define一個(gè)常數(shù),用以表明1年中有多少秒(忽略閏年問題#defineSECONDS_PER_YEAR(60*60*24*#define(例如:不能以分號(hào)結(jié)束,括號(hào)的使用,等等#defineMIN(A,B)(A)<=(B)?(A):Cif-then-else?;懂得在宏中地把參數(shù)用括號(hào)括起least=MIN(*p++,((*p++)<=(b)?(*p++):interface@protocolMyDelegate;@interfaceMyClass:NSObject id<MyDelegate>delegate;@protocolMyDelegate(void)didJobs:(NSArray*)args;寫一個(gè)NSString類的實(shí)+(id)initWithCString:(constchar*)nullTerminatedCString+(id)stringWithCString:(constchar*)nullTerminatedCStringencoding:(NSStringEncoding)encoding{NSStringobj=[selfallocWithZone:obj=[objinitWithCString:nullTerminatedCStringencoding:encoding];returnAUTORELEASE(obj);}obj-c有多重繼承么?不是的話有什么替代方cocoa中所有的類都是NSObject多繼承在這里是用protocol委托來實(shí)現(xiàn)的ood的多態(tài)特性在obj-c中通過委托來實(shí)現(xiàn).obj-c有私有方法么?私有變量objective-c-類里面的方法只有兩種,靜態(tài)方法和實(shí)例方法.這似乎就不是完整的面象了,按照OO的原則就是一個(gè)對(duì)象只有用的東西.如果沒有了私有方法的話,對(duì)于一些小范圍的代碼重用就不那么順手了.在類里面聲名一個(gè)私有方法@interfaceController:NSObject{NSString*something;}+@interfaceController(private)-constinta;intconsta;constint*a;int*constintconst*a前兩個(gè)的作用是一樣,aa(也就是,整型數(shù)是不可修改的,但你曾花很多時(shí)間清理其它人留下的,你就會(huì)很快學(xué)會(huì)感謝這點(diǎn)多余的信息(當(dāng)然,懂得用const的程序員很少會(huì)留下constbug欲一個(gè)變量被改變,可以使用const關(guān)鍵字。在定義該const變量時(shí),通常需要對(duì)它進(jìn)行初constconst,或二者同時(shí)指定為const;const關(guān)鍵字volatile有什么含意?并給出三個(gè)不同的例這個(gè)變量時(shí)必須每次都地重新這個(gè)變量的值,而不是使用保存在寄存器里的備份。下面是volatile變量的幾個(gè)例?;一個(gè)中斷服務(wù)子程序中會(huì)到的非自動(dòng)變量(Non-automaticvariables)?;多線程應(yīng)用中被幾個(gè)任務(wù)共享的變volatilestatic關(guān)鍵字的作用staticauto在模塊內(nèi)的static全局變量可以被模塊內(nèi)所用函數(shù),但不能被模塊外其它函數(shù)staticstatic在類中的static成員函數(shù)屬于整個(gè)類所擁有,這個(gè)函數(shù)不接收this指針,因而只能類的static成員變量extern"C"extern"CexternexternC/C++語言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,該關(guān)鍵字告訴編譯器,extern"CCextern"C"在C++中C語言中的函數(shù)和變量,在包含C語言頭文件(假設(shè)為cExample.h)時(shí),需進(jìn)extern{#include 而在C語言的頭文件中,對(duì)其外部函數(shù)只能指定為extern類型,C語言中不支持extern"C",在.c文件中包含了extern"C"時(shí)會(huì)出現(xiàn)編譯語法錯(cuò)誤。在C中C++語言中的函數(shù)和變量時(shí),C++的頭文件需添加extern"C",但是在C語言中能直接了extern"C"的該頭文件,應(yīng)該僅將C文件中將C++中定義的extern"C"函數(shù)extern#ifndef#define#ifdefextern"C"{#ifdef}#endif/*

INCvxWorksh

INCvxWorksh、#endif”#import跟#include的區(qū)別,@class@class一般用于頭文件中需要該類的某個(gè)實(shí)例變量的時(shí)候用到,在m文件中還是需要使用#import而#import#includeMVC模式的理MVC 答案:原子操作信號(hào)量機(jī)制 overflow。因此,能從棧獲得的空間較小。 C/C++函數(shù)庫提供的,它的機(jī)制是很復(fù)雜的。鍵-值,鍵路徑是什(個(gè)屬性所有值有相同數(shù)據(jù)類。-值編碼技用于進(jìn)這樣的找—它一種接對(duì)象屬的機(jī)制鍵路徑是個(gè)由用作分隔的鍵組的字符,于指定接在起的對(duì)性質(zhì)序。第一鍵性質(zhì)是由前的性Forexample,thekeypathaddress.streetwouldgetthevalueoftheaddresspropertyfromthereceivingobject,andthendeterminethestreetpropertyrelativetotheaddressobject.cobj-c如何混1)obj-cmobj-ccmmobj-c,c,c++obj-cimport,mm。如果模塊以函數(shù)實(shí)現(xiàn),那么頭文件要按c的格式函數(shù),實(shí)現(xiàn)文件中,c++函數(shù)可以用obj-c,但后綴還是mm或m??偨Y(jié):只要cpp文件和cppinclude的文件中不obj-c的東西就可以用了,cpp混用obj-c的關(guān)鍵是使用接口,而不能直接使用實(shí)現(xiàn)代碼,實(shí)際上cpp混用的是obj-c編譯后的o文件,這個(gè)東西其實(shí)是無差別的,所以可以用。obj-c的編譯器cpp.目標(biāo)-動(dòng)作機(jī)cocoatouchOS應(yīng)用程序的基礎(chǔ)CocoaTouch框架重用了許多Mac系統(tǒng)的成熟模式,但是 IKit為您提供了在OS上實(shí)現(xiàn)圖形,事件驅(qū)動(dòng)程序的基本工具,其建立在和MacOSX中一樣的Foundation框架CocoaTouch具有和用戶接口一致的特殊設(shè)計(jì)。有了UIKit,您可以使用OS上的獨(dú)特的圖形接口控件,按各色俱全的框架除了UIKit外,CocoaTouch包含了創(chuàng)建世界一流應(yīng)用程序需要的所有框架,從三維圖形,到專業(yè)音效,甚至提供設(shè)備API以控制頭,或通過GPS獲知當(dāng)前位置。CocoaTouch既包含只需要幾行代碼就可以完成全部任務(wù)的強(qiáng)大的Objective-C框架,也在需要時(shí)提供基礎(chǔ)的C語言API來直接系統(tǒng)。這些框架包括:CoreCoreAnimation,您就可以通過一個(gè)基于組合獨(dú)立圖層的簡(jiǎn)單的編程模型來創(chuàng)建豐富的用戶體驗(yàn)。CoreAudioCoreCocoaTouchCoreAudioMediaLibraryAVFoundationCoreDataCoreAnimationOpenGLESQuartz2DBSDSocketsAddressBookCoreLocationMapKitStoreKitobjc的內(nèi)存管如果您通過分配和初始(比如[[MyClassalloc]init])的方式來創(chuàng)建對(duì)象您就擁有這個(gè)對(duì)象需要負(fù)責(zé)該對(duì)象的。NSObjectnew時(shí)也同樣適用。自動(dòng)池是什么,如何工ojc-c是通過一種"referringcounting"(計(jì)數(shù))的方式來管理內(nèi)存的,對(duì)象在開始分配內(nèi)存(alloc)的時(shí)候計(jì)數(shù)為一,以后每當(dāng)碰到有copy,retain的時(shí)候計(jì)數(shù)都會(huì)加一,每當(dāng)碰到release和autorelease的時(shí)候計(jì)數(shù)就會(huì)減一,如果此對(duì)象的計(jì)數(shù)變?yōu)榱?,就會(huì)被系統(tǒng)銷毀.autorelease和release沒什么區(qū)別,只是計(jì)數(shù)減一的時(shí)機(jī)不同而已,autorelease會(huì)在對(duì)象的使用真正結(jié)束的時(shí)候才這些方法的形式是+(type)className...(其中className。工廠方法可能不僅僅為了方便使用。它們不但可以將分配和初始化合在一起,還可以為初始化過程提供對(duì)象的分配信息。類工廠方法的另一個(gè)目的是使類(NSWorkFoundation和ApplicationKit框架中的一些類只允許創(chuàng)建單件對(duì)象,即這些類在當(dāng)前進(jìn)的唯一實(shí)例。舉例來說,NSFileManagerNSWorkspace類在使用時(shí)都是基于進(jìn)程進(jìn)行單件對(duì)象的實(shí)例化。當(dāng)向這些類請(qǐng)求實(shí)例的時(shí)候,它們會(huì)向您傳NSWor

溫馨提示

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

評(píng)論

0/150

提交評(píng)論