ios objc msgSend深入學習

2021-07-23 08:21:39 字數 907 閱讀 3815

關於objc_msgsend呼叫的四種寫法

id (*sendmessage)(id, sel, id, id, id) = (id (*)(id, sel, id, id, id))objc_msgsend;

float (*sendfloatmessage)(id, sel, id, id, id) = (float (*)(id, sel, id, id, id))objc_msgsend;

bool (*sendboolmessage)(id, sel, id, id, id) = (bool (*)(id, sel, id, id, id))objc_msgsend;

void (*sendvoidmessage)(id, sel, id, id, id) = (void (*)(id, sel, id, id, id))objc_msgsend;

舉例子,使用一種,其他方法類似.

partyinte***ce:另外乙個framework中的乙個介面類 ,這個類裡面判斷登入與否的一種方法isuserlogin。

利用objc_msgsend可以在不引入另外乙個framework的標頭檔案的情況下,使用呼叫它。

**如下:

sel testfunc = nsselectorfromstring(@"isuserlogin");

class partyinte***ceclass = nsclassfromstring(@"partyinte***ce");

//ios8下特殊寫法

bool a = ((bool(*)(id,sel, id,id))objc_msgsend)(partyinte***ceclass, testfunc, nil, nil);

if (a)

js深轉殖深拷貝

不足之處是不能拷貝函式,但是基本夠用 const deepcopy obj json parse json stringify obj 如果涉及拷貝函式 簡單一點 function copy object for const k,v of object.entries object return o...

8位深 16位深 24位深

乙個畫素用多少位表示,例如,乙個畫素點,用1位資料表示的話,它有兩種顏色可以選擇 2的1次方,黑白兩種 如乙個畫素點,用8位的資料表示的話,這個點可以有2的8次方 256 種顏色的選擇,同理,16 24等。8位rgb影象 16位rgb影象 這裡的8位是針對rgb影象而言,rgb影象由三個顏色通道組成...

Character Controller深度解析

說明 character一般用於主角這類使用者控制的物體,它不會受到scene的重力影響,不會被其他物體推。程式中可以使用它的move方法移動它,當他碰到靜態物體時,會停下來,遇到動態物體時會推開他,當然,哲學都是可以通過activegroup老控制的,group至多有32組。character還有...