void (*setter)(id, SEL, BOOL);int i;setter = (void(*)(id, SEL, BOOL))[target methodForSelector:@selector(setFilled:)];for (i = 0; i < 1000; i++)setter(targetList[i], @selector(setFilled:), YES);怎么理解
2 回答

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
這是定義系列函數(shù):
首先,頂上是聲明部分,函數(shù)反回值為void
接著是函數(shù)名稱,在這里不是個(gè)定值,而是個(gè)指針
比如void maxNums();這個(gè)函數(shù),把maxNums存為一個(gè)串,就是這個(gè)意思
這樣的好處是可以批量的聲明多個(gè)函數(shù),例如下面for循環(huán)中內(nèi)容
最后的括號(hào)內(nèi)(id, SEL, BOOL)這里是函數(shù)的參數(shù)部分

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
從表面上來(lái)看,應(yīng)該是聲明一個(gè)返回類型為void的,名字叫cal的函數(shù),這個(gè)函數(shù)需要輸入一個(gè)int類型的參數(shù),形參名是sel
添加回答
舉報(bào)
0/150
提交
取消