iOS 面試題(九)

2021-06-23 03:14:47 字數 1250 閱讀 7178

objective-c有私有方法麼?私有變數呢?如多沒有的話,有沒有什麼代替的方法?

oc中沒有私有方法,有私有變數

私有方法可以用category(類目)extension(延展)來代替

2   #import、#include和@class有什麼區別

#include<>用於系統自帶的標頭檔案的引用,編譯器會在系統檔案目錄下查詢該檔案

#include「x.h」使用者自定義的檔案引用,編譯器會首先在使用者目錄下查詢,然後到安裝目錄中查詢,最後在系統檔案中查詢

在使用#include的時候要注意處理重複引用

#import 大部分功能和#include是一樣的,但是其自動處理重複引用問題

@class 只要用於宣告乙個類,告知編譯器它後面跟的是乙個類的名字,而這個類的實現暫時不用知道。在後面的實現檔案中#import這個類的時候,才包含這個被引用類的所有資訊

3  談談你對mvc的理解?為什麼要用mvc?在cocoa中mvc是怎麼實現的?你還熟悉其他的oc設計模式或別的設計模式嗎?

mvc是model(模型)view(檢視)controller(控制)mvc的目的就是實現系統職能的分工 。model為資料模型,處理資料。view用於檢視展示。controller進行ui展示和資料互動的邏輯控制 

採用mvc可以實現頁面**和邏輯的分開,使層次清晰,職責分明,易於維護 

delegate模式 單例模式 kvc模式 訊息通知模式  target/action模式(當某個事件發生時,呼叫那個物件中的對應的方法)

4   如何監測系統鍵盤的彈出

[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector() name:uikeyboardwillshownotification object:nil];

(拓展題  )ios彈出鍵盤擋住uitextview的解決方式

呼叫-(void)textfielddidbeginediting:(uitextfield *)textfield方法 ,可以通過這個方法調整輸入框的座標,屬性scrollenable設為yes

位置復原寫在-(bool)textfieldshouldreturn:(uitextfield *)sender;

5   舉出5個以上你所熟悉的ios  sdk庫有哪些和第三方庫有哪些?

sharesdk   sdwebimage   fmdb  afnetworking  mjrefresh  reachability

iOS 面試題(六)

回答person的retaincount值,並解釋為什麼 person per person alloc init self.person per 1 或者2 看物件用什麼屬性修飾,person類物件在建立的時候引用計數加1,若用 assign類不會使引用計數加1的屬性修飾 person的retai...

iOS 面試題(十)

如何將產品進行多語言發布?在工程infoplist.strings中新增發布時需要的語言,並在 建立 strings 檔案進行 字串 和其他檔案的多語言處理 2 如何將敏感字變成 訪問敏感字的陣列 nsmutablearray array nsmutablearray alloc init 向敏感字...

iOS面試題(二)

1.self.和self的區別?id,nil代表什麼?2.nsdate如何格式化輸出?對於格式是否有要求?例項化乙個nsdateformatter物件nsdateformatter dateformatter nsdateformatter alloc init 設定時間格式,這裡可以設定成自己需要...