最全的iOS面試題及答案
iOS面試小貼士
———————————————回答好下面的足夠了-------------------------------------
目錄:
基礎(chǔ)
- 如何令?自?己所寫的對(duì)象具有拷?貝功能?
- 說說你理理解weak屬性?
- 題?目:Swift mutating關(guān)鍵字的使?用?
- UIView和 CALayer是什什么關(guān)系?
- 下?面的代碼輸出什什么?
- @synthesize 和 @dynamic 分別有什什么作?用?
- 動(dòng)態(tài)綁定
- Category(類別)、 Extension(擴(kuò)展)和繼承的區(qū)別
- 為什什么代理理要?用weak?代理理的delegate和dataSource有什什么區(qū)別?block和代理理 的區(qū)別?
- id和NSObject*的區(qū)別
- 如何令?自?己所寫的對(duì)象具有拷?貝功能?
- 使?用系統(tǒng)的某些block api(如UIView的block版本寫動(dòng)畫時(shí)),是否也考慮引?用 循環(huán)問題?
- ?用@property聲明的NSString(或NSArray,NSDictionary)經(jīng)常使?用copy關(guān)鍵 字,為什什么?如果改?用strong關(guān)鍵字,可能造成什什么問題?
- UIView和 CALayer是什什么關(guān)系?
- static有什什么作?用?
底層:
- main()之前的過程有哪些?
- KVO基本原理理?
- Swift 下的如何使?用 KVC?
- :Swift有哪些模式匹配?
- objc在向?一個(gè)對(duì)象發(fā)送消息時(shí),發(fā)?生了了什什么?
- 靜態(tài)庫的原理理是什什么?你有沒有?自?己寫過靜態(tài)編譯庫,遇到了了哪些問題?
- runloop是來做什什么的?runloop和線程有什什么關(guān)系?主線程默認(rèn)開啟了了runloop 么??子線程呢?
- 不不?手動(dòng)指定autoreleasepool的前提下,?一個(gè)autorealese對(duì)象在什什么時(shí)刻釋放? (?比如在?一個(gè)vc的viewDidLoad中創(chuàng)建
- 不不?手動(dòng)指定autoreleasepool的前提下,?一個(gè)autorealese對(duì)象在什什么時(shí)刻釋放? (?比如在?一個(gè)vc的viewDidLoad中創(chuàng)建)
- OC完整的消息轉(zhuǎn)發(fā)機(jī)制+代碼實(shí)現(xiàn)【暴暴擊】
- 以+ scheduledTimerWithTimeInterval...的?方式觸發(fā)的timer,在滑動(dòng)?頁?面上的 列列表時(shí),timer會(huì)暫定回調(diào),為什什么?如何解決?
- 如何?手動(dòng)觸發(fā)?一個(gè)value的KVO
- 如何對(duì)定位和分析項(xiàng)?目中影響性能的地?方?以及如何進(jìn)?行行性能優(yōu)化?
- 串串?行行并?行行,異步同步的區(qū)別?
- 線程是什什么?進(jìn)程是什什么??二者有什什么區(qū)別和聯(lián)系?
- RunLoop是什什么?
- 假設(shè)有?一個(gè)字符串串a(chǎn)abcad,請(qǐng)寫?一段程序,去掉字符串串中不不相鄰的重復(fù)字符 串串,即上述字符串串處理理之后的輸出結(jié)果為:aabcd @autoclosure(?自動(dòng)閉包)
- iOS app啟動(dòng)如何優(yōu)化?
- swift?面試題:
- 怎樣防?止反編譯?
- UITableView性能優(yōu)化,超實(shí)?用
線程: - 不不要阻塞主線程
- 談?wù)勀銓?duì)多線程開發(fā)的理理解?ios中有?幾種實(shí)現(xiàn)多線程的?方法?
- 進(jìn)程和線程的區(qū)別?同步異步的區(qū)別?并?行行和并發(fā)的區(qū)別?
- ViewController?生命周期
- iOS 中的多線程
- 內(nèi)存管理理的?幾條原則時(shí)什什么?按照默認(rèn)法則.那些關(guān)鍵字?生成的對(duì)象 需要?手動(dòng)釋放?在和property結(jié)合的時(shí)候怎樣有效的避免內(nèi)存泄露露? 誰申請(qǐng),誰釋放
- dispatch_barrier_async的作?用是什什么?
- 如何?用GCD同步若?干個(gè)異步調(diào)?用?(如根據(jù)若?干個(gè)url異步加載多張圖?片,然后在 都下載完成后合成?一張整圖)
http:
- http與https的區(qū)別?
- 服務(wù)器?能否知道APNS推送后有沒有到達(dá)客戶端的?方法?
app:
- 1.什什么?方式可以看到上架App的頭?文件?
2.閱讀過哪些框架的源碼?能說說它的架構(gòu)?方式嗎 - iOS iAP內(nèi)購(gòu)審核可能失敗的問題
IAP內(nèi)購(gòu)中虛擬貨幣導(dǎo)致審核?無法通過的問題?
基礎(chǔ):
1、如何令?自?己所寫的對(duì)象具有拷?貝功能?
如果想讓?自?己的類具備copy?方法,并返回不不可邊類型,必須遵循nscopying協(xié)議,并 且實(shí)現(xiàn)
- (id)copyWithZone:(NSZone *)zone
如果讓自?己的類具備mutableCopy方法,并且放回可變類型,必須遵守NSMutableCopying并實(shí)現(xiàn)- (id)mutableCopyWithZone:(nullable NSZone *)zone注意:再此說的copy對(duì)應(yīng)不不可邊類型和mutableCopy對(duì)應(yīng)不不可邊類型?方法,都是遵從 系統(tǒng)規(guī)則?而已。如果你想實(shí)現(xiàn)?自?己的規(guī)則,也是可以的。
2、 釋放時(shí),調(diào)?用clearDeallocating函數(shù)。clearDeallocating函數(shù)?首先根據(jù)對(duì)象地址 獲取所有weak指針地址的數(shù)組,然后遍歷這個(gè)數(shù)組把其中的數(shù)據(jù)設(shè)為nil后把這個(gè)entry從weak表中刪除,后清理理對(duì)象的記錄。
追問的問題?:
1.實(shí)現(xiàn)weak后,為什么對(duì)象釋放后會(huì)自動(dòng)為nil?
runtime?對(duì)注冊(cè)的類, 會(huì)進(jìn)?行行布局,對(duì)于?weak?對(duì)象會(huì)放?入?一個(gè)?hash?表中。 ?用?weak?指向的對(duì)象內(nèi)存地址作為?key,當(dāng)此對(duì)象的引?用計(jì)數(shù)為?0?的時(shí)候會(huì)? dealloc,假如?weak?指向的對(duì)象內(nèi)存地址是?a?,那么就會(huì)以?a?為鍵, 在這個(gè)? weak?表中搜索,找到所有以?a?為鍵的?weak?對(duì)象,從?而設(shè)置為?nil?。
由于太長(zhǎng)只能寫到這里 需要這份面試題的朋友可以到群里:763164022直接下載學(xué)習(xí),群里不僅有面試資料還有群友在聊技術(shù),群里全是iOS開發(fā)者,希望大家共同進(jìn)步!


