iOS 面試常見問題總結

1.除了MVC模式 你還熟悉什麼設計模式ios


   代理模式:當一個類的某些功能須要由別的類實現,可是又不肯定具體是哪一個類實現的算法


   單例模式:確保程序運行期,某個類只有一份實例,用於進行資源共享sql


   工廠模式:工廠模式建立的實例,多與proxy模式配合,建立可替代的類,通常用於基礎控件的建立數據庫


   觀察者模式:通常爲model層,對controller和view進行通知,不關心誰接收,只負責發佈消息設計模式


   策略模式:定義算法,封裝起來,使他們之間可相互替換服務器


2.線程和進程的區別與聯繫?談談多線程。session

   

(1)一個線程只屬於有一個進程,而一個進程能夠有多個線程,至少有一個線程多線程


(2)資源分配給進程,統一進程的全部線程共享該進程的全部資源app


(3)處理機分給線程,即真正在處理機上運行的是線程dom


3.你在開發項目中,用到了那些數據存儲方式,ios中常見的方式有哪幾種?


(1)歸檔 :採用歸檔的形式來保存數據,該數據對象須要 遵照NSCoding協議,而且該對象對應的類必須提供encodeWithCoder:initWithCoder:方法。前一個方法告訴系統怎麼對對象進行編碼,然後一個方法則是告訴系統怎麼對對象進行解碼。例如對Possession對象歸檔保存  


(2)NSUserDefault:用來保存應用程序設置和屬性、用戶保存的數 據。用戶再次打開程序或開機後這些數據仍然存在。NSUserDefaults能夠存儲的數據類型包括:NSDataNSString NSNumberNSDateNSArrayNSDictionary。若是要存儲其餘類型,則須要轉換爲前面的類型,才能用NSUserDefaults存儲。


(3)write寫入,永久保存在磁盤中:具體方法爲:第一步:得到文件即將保存的路徑:NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask,YES);//使用C函數NSSearchPathForDirectoriesInDomains來得到沙盒中目錄 的全路徑。該函數有三個參數,目錄類型、he domain mask、布爾值。其中布爾值表示是否須要經過~擴展路徑。並且第一個參數是不變的,即爲NSSearchPathDirectory 。在IOS中後兩個參數也是不變的,即爲:NSUserDomainMask  YESNSString *ourDocumentPath =[documentPaths objectAtIndex:0]; 


(4)sqlite數據庫:一步須要添加SQLite相關的庫以及頭文件:在項目文件的Build Phases下,找到Link Binary Library(ies),添加libsqlite3.0.dylib;在項目文件中頭文件或者源文件中添加頭文件#import 「/usr/include/sqlite3.h」第二步:開始使用SQLite:使用前注意:若是不往數據庫裏面添加任何的表,這個數據庫等於沒有創建,不會在硬盤上產生任何文件,若是數據庫已經存在,則會打開這個數據庫。


4.arc的程序出現內存泄露怎麼辦


   用ARC的,只是編譯器幫你管理合適release、retain,不用ARC就須要你本身去管理,說到底就是誰去管理的問題,若是實在找不到問題,建議你找到內存泄露的那個對象,將其賦值爲nil,由於在ARC中,一旦對象沒有指針指向,就會立刻釋放


5.❤️簡述一下iOS應用開發流程


 (1)產品經理作需求調研,肯定產品需求,編寫需求文檔


 (2)產品人員完成產品原型


 (3)產品經理召開會議(產品,uI,開發,測試,服務器)


 (4)服務器與客戶端成員一塊兒制定接口文檔


 (5)項目經理制定開發進度,分配任務,預算開發週期

 

 (6)移動客戶端開發人員根據UI界面和需求文檔,開始編碼,開發模塊上的功能

 

 (7)開發者完成開發後提交給測試


 (8)測試部分完畢,提交給產品經理,驗收產品

 

 (9)提交到appstore

相關文章
相關標籤/搜索