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安全效...