ios就業(yè)面試題_第1頁(yè)
ios就業(yè)面試題_第2頁(yè)
ios就業(yè)面試題_第3頁(yè)
ios就業(yè)面試題_第4頁(yè)
ios就業(yè)面試題_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1、 b 簡(jiǎn)述OC 中內(nèi)存管理機(jī)制。與retain 配對(duì)使用的方法是dealloc 還是release ,為什么?需要與alloc 配對(duì)使用的方法是dealloc 還是release ,為什么?readwrite ,readonly ,assign ,retain ,copy ,nonatomic 、atomic 、strong 、weak 屬性的作用?并區(qū)別strong(強(qiáng)引用 、 weak(弱引用 ?什么情況使用copy ,assign ,和retain ?引用計(jì)數(shù)機(jī)制進(jìn)行內(nèi)存管理。dealloc release 因?yàn)閞etain 就要銷毀 創(chuàng)建就要釋放readwtite : 可讀寫(設(shè)置

2、器和訪問(wèn)器 readonly : 只讀(訪問(wèn)器 assign : 只做賦值retain,copy : 賦值并引用計(jì)數(shù)加1 copy : 拷貝并引用計(jì)數(shù)加1 nonatomic : 非原子性 anotamic : 原子性(保證多線程安全strong : 打開ARC 時(shí)才會(huì)使用, 相當(dāng)于retain weak : 打開ARC 時(shí)才會(huì)使用, 相當(dāng)于assign, 可以把對(duì)應(yīng)的指針變量置為nilcopy : 適用于接受了nscopy 協(xié)議的對(duì)象類型assign : 適用于一般類型retain : 適用于一般對(duì)象類型2、類變量的protected ,private,public,package,聲明各有

3、什么含義? protected : 受保護(hù)的, 自己和自雷可以調(diào)用 private : 私有的, 只有自己可以調(diào)用public : 公共的, 全局都可以調(diào)用package : 本包內(nèi)使用, 跨包不可以3、 線程是什么?進(jìn)程是什么?二者有什么區(qū)別和聯(lián)系?線程,有時(shí)稱為輕量級(jí)進(jìn)程,是被系統(tǒng)獨(dú)立調(diào)度和CPU 的基本運(yùn)行單位。 進(jìn)程是操作系統(tǒng)中可以并行工作的基本單位。一個(gè)應(yīng)用程序里至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程里至少有一個(gè)線程4、 談?wù)勀銓?duì)多線程開發(fā)的理解?ios 中有幾種實(shí)現(xiàn)多線程的方法? 在一個(gè)進(jìn)程中有多個(gè)線程,每個(gè)線程有自己?jiǎn)为?dú)的任務(wù)優(yōu)點(diǎn)效率快 缺點(diǎn)不安全,耗費(fèi)資源有三種第一種,使用synchroni

4、zed(self第二種,使用GCD第三種,使用NSOperationQueue5、 多線程同步和異步的區(qū)別?IOS 中如何實(shí)現(xiàn)多線程的同步?一個(gè)進(jìn)程啟動(dòng)的多個(gè)不相干線程,它們相互之間關(guān)系為異步。同步的話指的是多線程同時(shí)操作一個(gè)數(shù)據(jù) 這個(gè)時(shí)候需要對(duì)數(shù)據(jù)添加保護(hù) 這個(gè)保護(hù)就是線程的同步。用GCD 中的串行隊(duì)列來(lái)解釋多線程的同步,也就是隊(duì)列中的任務(wù)為串行,它們各自對(duì)相鄰的任務(wù)有依賴性,如果任務(wù)1不完成,那么任務(wù)2就不會(huì)開始,這就是同步 6、 簡(jiǎn)述什么地方會(huì)用到多線程?談?wù)劧嗑€程安全問(wèn)題的幾種解決方案?何為線程同步,如何實(shí)現(xiàn)的?分線程回調(diào)主線程方法是什么,有什么作用?7、 假設(shè)有一個(gè)字符串a(chǎn)abcad

5、 ,請(qǐng)寫一段程序,去掉字符串中不相鄰的重復(fù)字符串,即上述字符串處理之后的輸出結(jié)果為:aabcdNSMutableArray *marry = NSMutableArray allocinit;for (int i = 0; i str.length - 1; i+ unsigned char a = str characterAtIndex:i;for (int j = i + 1; j 0; i- NSInteger num = marry objectAtIndex:iintValue;str deleteCharactersInRange:NSMakeRange(num, 1;8、 獲取

6、一臺(tái)設(shè)備唯一標(biāo)識(shí)的方法有哪些?UIID UUID MAC ADDRESS OPEN UDID廣告標(biāo)示符 Vindor 標(biāo)示符9、 ios 類是否可以多繼承?如果沒有,那可以用其他方法實(shí)現(xiàn)嗎?簡(jiǎn)述實(shí)現(xiàn)過(guò)程。沒有 用catogory 和 extension 可以實(shí)現(xiàn)10、 堆和棧的區(qū)別?堆需要用戶手動(dòng)釋放內(nèi)存,而棧則是編譯器自動(dòng)釋放內(nèi)存11、 ios 本地?cái)?shù)據(jù)存儲(chǔ)都有哪幾種方式?1. NSKeyedArchiver(加密形式)2. NSUserDefaults3. Write寫入方式4. SQLite312、 寫出方法獲取ios 內(nèi)存使用情況。void logMemoryInfo(13、 深拷貝和

7、淺拷貝的理解?對(duì)一個(gè)實(shí)例進(jìn)行深拷貝時(shí)當(dāng)前類需要實(shí)現(xiàn)NSCopying 協(xié)議。淺拷貝是復(fù)制出來(lái)一個(gè)跟原對(duì)象是同一地址的對(duì)象,而深拷貝則是復(fù)制出 來(lái)一個(gè)跟源對(duì)象不同地址的對(duì)象,改變?cè)瓕?duì)象,對(duì)新對(duì)象沒有影響。14、 怎樣實(shí)現(xiàn)一個(gè)singleton 的類。單例15、 什么是安全釋放?把對(duì)象指著置為nil, 再對(duì)其釋放16、 RunLoop 是什么?17、 什么是序列化和反序列化,可以用來(lái)做什么?如何在OC 中實(shí)現(xiàn)復(fù)雜對(duì)象的存儲(chǔ)?18、 寫一個(gè)標(biāo)準(zhǔn)宏MIN ,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)?19、 垃圾回收機(jī)制是什么iphone os 有沒有垃圾回收機(jī)制?簡(jiǎn)單闡述一下OC內(nèi)存管理。20、 簡(jiǎn)述應(yīng)用程

8、序按Home 鍵進(jìn)入后臺(tái)時(shí)的生命周期,以及從后臺(tái)回到前臺(tái)時(shí)的生命周期? 21、 ViewController 的 alloc ,loadView,viewDidLoad,viewWillAppear,viewDidUnload,dealloc 、init 分別是在什么時(shí)候調(diào)用的?在自定義ViewController 的時(shí)候這幾個(gè)函數(shù)里面應(yīng)該做什么工作?22、 描述應(yīng)用程序的啟動(dòng)順序。23、 為什么很多內(nèi)置類如UITableViewControl 的delegate 屬性都是assign 而不是retain ?請(qǐng)舉例說(shuō)明。24、 使用UITableView 時(shí)候必須要實(shí)現(xiàn)的幾種方法?25、寫一個(gè)

9、便利構(gòu)造器。 26、UIImage 初始化一張圖片有幾種方法?簡(jiǎn)述各自的優(yōu)缺點(diǎn)。 27、回答person 的retainCount 值,并解釋為什么 28、這段代碼有什么問(wèn)題嗎: 29、分別輸出它們。31、 用obj-c 寫一個(gè)冒泡排序32、 簡(jiǎn)述你對(duì)UIView 、UIWindow 和CALayer 的理解33、 寫一個(gè)完整的代理,包括聲明,實(shí)現(xiàn)34、 分析json 、xml 的區(qū)別?json 、xml 解析方式的底層是如何處理的?35、 ViewController 的 didReceiveMemoryWarning 是在什么時(shí)候被調(diào)用的?默認(rèn)的操作是什么?36、 面向?qū)ο蟮娜筇卣?,并?/p>

10、簡(jiǎn)單的介紹37、 重寫一個(gè)NSStrng 類型的,retain 方式聲明name 屬性的setter 和getter方法38、 簡(jiǎn)述NotificationCenter 、KVC 、KVO 、Delegate ?并說(shuō)明它們之間的區(qū)別?39、 What is lazy loading?40、 什么是Protocol ?什么是代理?寫一個(gè)委托的interface ?委托的property聲明用什么屬性?為什么?41、 分別描述類別(categories )和延展(extensions )是什么?以及兩者的區(qū)別?繼承和類別在實(shí)現(xiàn)中有何區(qū)別?為什么Category 只能為對(duì)象添加方法,卻不能添加成員變

11、量?42、 Objective-C 有私有方法么?私有變量呢?如多沒有的話,有沒有什么代替的方法?43、 #import、#include和class有什么區(qū)別44、 談?wù)勀銓?duì)MVC 的理解?為什么要用MVC ?在Cocoa 中MVC 是怎么實(shí)現(xiàn)的?你還熟悉其他的OC 設(shè)計(jì)模式或別的設(shè)計(jì)模式嗎?45、 如監(jiān)測(cè)系統(tǒng)鍵盤的彈出46、舉出5個(gè)以上你所熟悉的ios sdk 庫(kù)有哪些和第三方庫(kù)有哪些? 47、如何將產(chǎn)品進(jìn)行多語(yǔ)言發(fā)布? 48、如何將敏感字變成* 49、objc 中的減號(hào)與加號(hào)代表什么? 50、單例目的是什么,并寫出一個(gè)? 51、說(shuō)說(shuō)響應(yīng)鏈 52、 我們說(shuō)的OC 是動(dòng)態(tài)運(yùn)行時(shí)語(yǔ)言是什么意思

12、?什么是動(dòng)態(tài)識(shí)別,動(dòng)態(tài)綁定?53、 分別描述內(nèi)存管理要點(diǎn)、autorelease 、release 、NSAutoreleasePool ?并說(shuō)明autorelease 是什么時(shí)候被release 的?簡(jiǎn)述什么時(shí)候由你負(fù)責(zé)釋放對(duì)象,什么時(shí)候不由你釋放?NSAutoreleasePool release 和NSAutoreleasePool drain有什么區(qū)別54、 說(shuō)說(shuō)下面關(guān)鍵詞在內(nèi)存管理的作用:alloc 、init 、copy 、retain 、release 、autorelease 、dealloc 、retaincount ?55、 drawRect 和layoutSubviews

13、 的區(qū)別56、 http 和scoket 通信的區(qū)別?socket 連接相關(guān)庫(kù),TCP ,UDP 的區(qū)別?http 的幾種常用方式?57、 什么是鍵-值, 鍵路徑是什么58、聲明一個(gè)靜態(tài)方法和一個(gè)實(shí)例方法?59、 什么是push ?遠(yuǎn)程推送?60、 init 和initwithobject 區(qū)別(語(yǔ)法)?61、 請(qǐng)寫出代碼, 用blocks 來(lái)取代上例中的protocol, 并比較兩種方法的優(yōu)勢(shì)。實(shí)際應(yīng)用部分?請(qǐng)寫出代碼,用blocks 取代協(xié)議或回調(diào)方法62、 你做iphone 開發(fā)時(shí)候,有哪些傳值方式,view 和view 之間是如何傳值的?63、 給定的一個(gè)字符串,判斷字符串中是否還有p

14、ng ,有就刪除它?64、 對(duì)于語(yǔ)句NSString* testObject = NSData alloc init;testObject 在編譯時(shí)和運(yùn)行時(shí)分別是什么類型的對(duì)象?65、 OC 中是所有對(duì)象間的交互是如何實(shí)現(xiàn)的?66、 目標(biāo)-動(dòng)作機(jī)制67、 for(int index = 0; index largenumber; index +NSString *tempStr = ”tempStr”;NSLog(tempStr;NSNumber *tempNumber = NSNumber numberWithInt:2;(注意這行) NSLog(tempNumber;這段代碼有什么問(wèn)題.

15、?會(huì)不會(huì)造成內(nèi)存泄露(多線程)?在內(nèi)存緊張的設(shè)備上做大循環(huán)時(shí)自動(dòng)釋放池是寫在循環(huán)內(nèi)好還是循環(huán)外好?為什么?68、 描述上拉加載、下拉刷新的實(shí)現(xiàn)機(jī)制?69、 什么是沙盒(sandbox )?沙盒包含哪些文件,描述每個(gè)文件的使用場(chǎng)景。如何獲取這些文件的路徑?如何獲取應(yīng)用程序包中文件的路徑?70、 介紹一下XMPP ?有什么優(yōu)缺點(diǎn)嗎?71、 談?wù)剬?duì)性能優(yōu)化的看法,如何做?72、 應(yīng)用程序如何省電?73、 寫一個(gè)遞歸方法:計(jì)算N 的階乘,然后將計(jì)算結(jié)果進(jìn)行存儲(chǔ)。以便應(yīng)用退出后下次啟動(dòng)課直接獲取該值。74、 NSArray 和NSMutableArray 的區(qū)別,多線程操作哪個(gè)更安全?75、 當(dāng)前有一個(gè)

16、數(shù)組,里面有若干重復(fù)的數(shù)據(jù),如何去除重復(fù)的數(shù)據(jù)?(會(huì)幾個(gè)寫幾個(gè))76、 isKindOfClass 、isMemberOfClass 作用分別是什么?77、 寫出下面程序段的輸出結(jié)果NSDictionary *dict = NSDictionary dictionaryWithObject:a string value forKey:akey; NSLog(%, dict objectForKey:akey;dict release;78、 請(qǐng)寫出以下代碼的執(zhí)行結(jié)果NSString * name = NSString alloc init ;name = ”Habb ”;106、 關(guān)于 Obj

17、ective-C+中的異常處理,可以相互捕獲到嗎? 107、 OC 中異常 exception 怎么捕獲?不同的 CPU 結(jié)構(gòu)上開銷怎樣?C 中又什 么類似的方法? 108、 obc 中可修改和不可以修改類型 109、 淺復(fù)制和深復(fù)制的區(qū)別? 110、 獲取項(xiàng)目根路徑,并在其下創(chuàng)建一個(gè)名稱為 userData 的目錄? 111、 objective-c 中的類型轉(zhuǎn)換分為哪幾類? 112、 xml 解析的原理是什么,你還用過(guò)其他解析方式么? 113、 iphone 閱讀器,如果要讀取一個(gè)文本文件,請(qǐng)問(wèn)你是如何處理編碼問(wèn)題 的?另外像 pdf 格式的文件,你如何讀取。? 114、 你在開發(fā)大型項(xiàng)目

18、的時(shí)候,如何進(jìn)行內(nèi)存泄露檢測(cè)的 ? 內(nèi)存泄露怎么處 理? 115、 iphone app 為什么會(huì)被打回來(lái),如何制止? 116、 iphone 應(yīng)用程序的項(xiàng)目基本結(jié)構(gòu)? 117、 編譯語(yǔ)言和解釋語(yǔ)言的區(qū)別 118、 給用戶推送的通知的偽代碼 119、 什么是動(dòng)態(tài)鏈接庫(kù)和靜態(tài)鏈接庫(kù)?調(diào)用一個(gè)類的靜態(tài)方法需不需要 release? 120、 OC 中的數(shù)字對(duì)象都有哪些,簡(jiǎn)述它們與基本數(shù)據(jù)類型的區(qū)別是什么 121、 ios 平臺(tái)怎么做數(shù)據(jù)的持久化?coredata 和 sqlite 有無(wú)必然聯(lián)系?coredata 是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)嗎? 122、 objc 優(yōu)缺點(diǎn) 123、 objective-c

19、中的詞典對(duì)象、可變?cè)~典對(duì)象是哪個(gè),初始化一個(gè)含有兩個(gè)鍵 值對(duì)的可變?cè)~典對(duì)象,并動(dòng)態(tài)的添加和刪除一條記錄,輸出第一條記錄 124、 寫 一 個(gè) NSString 類 的 實(shí) 現(xiàn) + (idinitWithCString:(constchar *nullTerminatedCString encoding:(NSStringEncodingencoding; 125、 UITableView 的 重 用 機(jī) 制 ? 如 何 在 一 個(gè) view 上 顯 示 多 個(gè) tableView,tableView 要求不同的數(shù)據(jù)源以及不同的樣式 ( 要求自定義 cell, 如何組織各個(gè) tableView 的 delegate 和 dataSource?請(qǐng)說(shuō)說(shuō)實(shí) 現(xiàn)思 路?在一個(gè) tableView 中需要自定義多種樣式的 cell(兩種或三種,通常你 如何實(shí)現(xiàn),說(shuō) 說(shuō)思路即可?UITableView 的那些元素是可以自定義的? 126、 一個(gè) tableView 是否可以關(guān)聯(lián)兩個(gè)不同的數(shù)據(jù)源?你會(huì)怎么處理? 127、 在 一 個(gè) 對(duì) 象 釋 放 前 . 如 果 他 被 加 到 了 notificationCenter 中 , 在 notificationcenter 中 remove 這個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論