IOS開發常見面試題

2021-07-03 18:00:15 字數 957 閱讀 5099

1.解釋一下oc中的執行時。

1>runtime是什麼:

runtime是一套比較底層的c語言api,屬於1個c語言庫,包含了很多底層的c語言api;平時編寫oc**,在程式執行過程中,其實最終都轉換成了runtime的c語言**,runtime是oc的幕後工作者。

2>**舉例:

oc:

[[person alloc] init]
runtime:

objc_msgsend(objc_msgsend("person","alloc"),"init");
3>怎麼用:

runtime屬於oc的底層,可以進行一些非常底層的操作(用oc無法實現或者不好實現);在程式執行過程中,動態建立乙個類(比如kvo的底層實現);在程式執行過程中,動態的新增乙個類的屬性或方法,修改屬性或方法;遍歷乙個類的所有成員變數或屬性或方法。

a.相關的頭問價和函式

標頭檔案:

*

#import "classname.h"

@inte***ce

classname ( categoryname )

// method declarations

@end

不過到現在為止,category這個名字看起來仍然讓人摸不著頭腦——category的中文是分類和範疇的意思——即便這個動態機制很強大,跟分類有什麼關係呢?

這是因為利用這個機制,程式設計師可以把一堆方法分門別類,分成若干組,每組方法用乙個category名字加以命名,定義在同乙個檔案裡。這個就是為什麼把這個機制叫做category的原因。

注意category只能用於方法,不能用於成員變數。

理解了category,extension就不難理解了。extension是category的乙個特例,其名字為匿名(為空),並且新新增的方法一定要予以實現。(category沒有這個限制)

ios常見面試題

違反ios系統規則產生crash的三種型別 1 記憶體報警閃退 當ios檢測到記憶體過低時,它的vm系統會發出低記憶體警告通知,嘗試 一些記憶體 如果情況沒有得到足夠的改善,ios會終止後台應用以 更多記憶體 最後,如果記憶體還是不足,那麼正在執行的應用可能會被終止掉。在debug模式下,可以主動將...

前端開發常見面試題

1.盒子模型 所謂盒子模型 box model 就是把html頁面中的元素看作是乙個矩形的盒子,也就是乙個盛裝內容的容器。每個矩形都由元素的內容 content 內邊距 padding 邊框 border 和外邊距 margin 組成。2.html5新特性 3.div垂直水平居中 child 1 f...

常見面試題

1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...