自我介紹
HTTP了解多少
http://www.blogjava.net/zjusuyong/articles/304788.html
你是怎么使用alamofire的(需要封裝)
平時使用什么包管理工具,項目版本控制工具呢
頁面的生命周期
Init->loadView->viewDidload->viewWillappear->viewDidAppear->viewWillDisAppear->viewDidDisappear->deinit
應用的生命周期
知道多少網絡狀態(tài)碼
ARC MRC內存管理
MRC: 手動管理內存(retain, release, autorelease,不多說) 持有對象,retain +1 ,引用計數加1, 釋放對象:release -1, 引用計數減1,當引用計數為0時,會自動釋放內存. autorelease對象內存的管理放到autoreleasepool中, 當pool drain時,回收內存. (這是基于 objective-c的運行時特性和垃圾回收機制)
ARC: 手動管理內存, 這是xcode4.x版本的特性,(4.1及以前沒有,我從4.6開始的), 原理是:在編譯代碼的時候為你自動在合適的位置插入release 和 autorelease, (運行時處理垃圾回收就如何MRC一樣).
總結: ARC機制擁有和MRC一樣的效率, ARC通過在部分優(yōu)化和在最合適的地方完成引用計數的維護,所以支持使用ARC.
http://www.itdecent.cn/p/48665652e4e4
循環(huán)引用問題怎么解決
除了weak還了解那些關鍵字?
unowaned和weak的區(qū)別
//方案1 weak var weakSelf = self
testClosure = {(myNum)->Void in weakSelf?.classNum = myNum; }
//方案2
處理循環(huán)
//[weak self] 表示 self為可選型 可以為nil 所以在使用的時候必須解包
testClosure = {weak self->Void in self?.classNum = myNum; }
//方案3 //
[unowned self]由于在使用前要保證一定有這個對象 所以不必解包
testClosure = {unowned self->Void in self.classNum = myNum; }
閉包的了解:
自包含的函數代碼塊;
可選類型的了解
開發(fā)中用到了什么數據庫,什么應用場景下的,具體是怎么使用sqlite的的
開發(fā)的時候什么時候會用到catch
catch能不能檢測nil值
tableview cell重用怎么去做
說一下發(fā)布應用的流程
cocopods的實現
CocoaPods工作原理:
CocoaPods的工作主要是通過ProjectName.xcworkspace來組織的,在打開ProjectName.xcworkspace文件后,發(fā)現Xcode會多出一個Pods工程。
- 庫文件引入及配置:庫文件的引入主要由Pods工程中的Pods-ProjectName-frameworks.sh腳本負責,在每次編譯的時候,該腳本會幫你把預引入的所有三方庫文件打包的成ProjectName.a靜態(tài)庫文件,放在我們原Xcode工程中Framework文件夾下,供工程使用。如果Podfile使用了use_frameworks!,這是生成的是.framework的動態(tài)庫文件。引入方式也略有不同。
- Resource文件:Resource資源文件主要由Pods工程中的Pods-ProjectName-resources.sh腳本負責,在每次編譯的時候,該腳本會幫你將所有三方庫的Resource文件copy到目標目錄中。
- 依賴參數設置:在Pods工程中的的每個庫文件都有一個相應的SDKName.xcconfig,在編譯時,CocoaPods就是通過這些文件來設置所有的依賴參數的,編譯后,在主工程的Pods文件夾下會生成兩個配置文件,Pods-ProjectName.debug.xcconfig、Pods-ProjectName.release.xcconfig。
convenient init怎么使用
總結:
阿里的一面,也就是簡歷面,因為看我時Swift方向的所以問的都是Swift問題;后續(xù)經過了幾個公司都是問的OC,所以深深體會到自己Swfit不精、OC又不會,接下來一段時間要好好準備。