iPhone開發(fā) 動(dòng)態(tài)調(diào)用類和方法
iPhone開發(fā) 動(dòng)態(tài)調(diào)用類和方法是本文要介紹的內(nèi)容,不多說(shuō),我們先來(lái)看內(nèi)容。
舉一個(gè)很簡(jiǎn)單的例子:
某公司的有1000名員工, 每個(gè)員工的工資都不一樣. 發(fā)工資的時(shí)候, 這要是人工去發(fā), 耗費(fèi)的時(shí)間和精力是非常大的. 所以財(cái)務(wù)會(huì)打一個(gè)表格給銀行, 委托銀行轉(zhuǎn)賬.
站在銀行的角度, 如果有1000個(gè)公司, 委托銀行轉(zhuǎn)賬發(fā)工資. 它應(yīng)該怎么做呢? 它需要通過(guò)電子轉(zhuǎn)賬系統(tǒng), 輸入公司名字, 每個(gè)員工的工資數(shù), 就可以實(shí)現(xiàn)自動(dòng)轉(zhuǎn)賬了.
好, 我們回到 iPhone 開發(fā)上來(lái):
我們現(xiàn)在面臨的情況是, 有10個(gè)類, 每個(gè)類里頭都有n個(gè)方法(前提是方法名有規(guī)律可循,比如 setA0,setA1…) 如果挨個(gè)去init類, 然后挨個(gè)調(diào)用方法,這樣你一天就不用干別的了.
ObjC里面,我們可以這樣實(shí)現(xiàn):
有數(shù)組: classNames, 存著 類的名字
方法名都是 setA 開頭
- for (int c=0; c<[classNames count]; c++) {
- NSString *className=[classNames objectAtIndex:c];
- id class=[[NSClassFromString(className) alloc] init];
- for (int i=0; i<[params count]; i++) {
- [class performSelector:NSSelectorFromString([NSString stringWithFormat:@"setA%i",i])];
- }
- }
兩個(gè)重要的宏 我加大字體標(biāo)出來(lái)了,然后你可以再發(fā)揮一下, 比如傳參數(shù)
小結(jié):iPhone開發(fā) 動(dòng)態(tài)調(diào)用類和方法的內(nèi)容介紹完了,希望本文對(duì)你有所幫助。