iOS 面試常問問題總結

2021-07-04 15:29:47 字數 1864 閱讀 6963

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

**模式:當乙個類的某些功能需要由別的類實現,但是又不確定具體是哪個類實現的

單例模式:確保程式執行期,某個類只有乙份例項,用於進行資源共享

工廠模式:工廠模式建立的例項,多與proxy模式配合,建立可替代的類,一般用於基礎控制項的建立

觀察者模式:一般為model層,對controller和view進行通知,不關心誰接收,只負責發布訊息

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

2.執行緒和程序的區別與聯絡?談談多執行緒。

(1)乙個執行緒只屬於有乙個程序,而乙個程序可以有多個執行緒,至少有乙個執行緒

(2)資源分配給程序,統一程序的所有執行緒共享該程序的所有資源

(3)處理及分給執行緒,即真正在處理機上執行的是執行緒

3.你在開發專案中,用到了那些資料儲存方式,ios中常見的方式有哪幾種?

(1)歸檔 :採用歸檔的形式來儲存資料,該資料物件需要遵守nscoding協議,並且該物件對應的類必須提供encodewithcoder:和initwithcoder:方法。前乙個方法告訴系統怎麼對物件進行編碼,而後乙個方法則是告訴系統怎麼對物件進行解碼。例如對possession物件歸檔儲存。

(2)nsuserdefault:用來儲存應用程式設定和屬性、使用者儲存的資料。使用者再次開啟程式或開機後這些資料仍然存在。nsuserdefaults可以儲存的資料型別包括:nsdata、nsstring、nsnumber、nsdate、nsarray、nsdictionary。如果要儲存其他型別,則需要轉換為前面的型別,才能用nsuserdefaults儲存。

(3)write寫入,永久儲存在磁碟中:

具體方法為:第一步:獲得檔案即將儲存的路徑:nsarray *documentpaths = nssearchpathfordirectoriesindomains(nsdocumentdirectory,  nsuserdomainmask,yes);//使用c函式nssearchpathfordirectoriesindomains來獲得沙盒中目錄

的全路徑。該函式有三個引數,目錄型別、he domain mask、布林值。其中布林值表示是否需要通過~擴充套件路徑。而且第乙個引數是不變的,即為nssearchpathdirectory 。在ios中後兩個引數也是不變的,即為:nsuserdomainmask 和 yes。nsstring *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中,一旦物件沒有指標指向,就會馬上釋放

(1)產品經理做需求調研,確定產品需求,編寫需求文件

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

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

(4)伺服器與客戶端成員一起制定介面文件

(5)專案經理制定開發進度,分配任務,預算開發周期

(6)移動客戶端開發人員根據ui介面和需求文件,開始編碼,開發模組上的功能

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

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

Mysql面試常問問題

資料庫基礎知識 1 為什麼要使用資料庫 2 什麼是sql?3 什麼是mysql?4 資料庫三大正規化是什麼 5 mysql有關許可權的表都有哪幾個 6 mysql的binlog有有幾種錄入格式?分別有什麼區別?資料型別 1 mysql有哪些資料型別 引擎1 mysql儲存引擎myisam與innod...

php 面試常問問題

1.看看簡歷,會問一些過去做的專案的使用者量 pv 吞吐量 相關難點和解決方法等 2.資料庫設計經驗,為什麼進行分表?分庫?一般多少資料量開始分表?分庫?分庫分表的目的?什麼是資料庫垂直拆分?水平拆分?分割槽等等?可以舉例說明 3.資料庫優化有哪些?分別需要注意什麼?4.web開發方面會遇到哪些快取...

Redis 面試常問問題(二)

一 最基本問題 1 如何保證redis的高併發和高可用?redis的主從複製原理能介紹一下嘛?redis的哨兵原理能介紹一下嘛?面試官心理 其實問這個問題,主要是考考你,redis單機能承載多高併發?如果單機扛不住如何擴容來抗更多的併發?redis會不會掛?既然redis會掛,那怎麼保證redis是...