cocios面試題-objective一、答題_第1頁
cocios面試題-objective一、答題_第2頁
cocios面試題-objective一、答題_第3頁
cocios面試題-objective一、答題_第4頁
cocios面試題-objective一、答題_第5頁
免費預覽已結束,剩余18頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

INCvxWorksh

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

溫馨提示

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

最新文檔

評論

0/150

提交評論