1. 先寫(xiě)plist配置文件
plist寫(xiě)到resouce里面去
通過(guò)NSBundle把數(shù)據(jù)取plist讀出來(lái)
2. 通過(guò)NSClassFromString創(chuàng)建類
NSClassFromString
NSSelectorFromString
正常來(lái)說(shuō),
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];
和
id myObj = [[MySpecialClass alloc] init];
是一樣的。但是,如果你的程序中并不存在MySpecialClass這個(gè)類,下面的寫(xiě)法會(huì)出錯(cuò),而上面的寫(xiě)法只是返回一個(gè)空對(duì)象而已。
因此,在某些情況下,可以使用NSClassFromString來(lái)進(jìn)行你不確定的類的初始化。
比如在iPhone中,NSTask可能就會(huì)出現(xiàn)這種情況,所以在你需要使用NSTask時(shí),最好使用:
[[NSClassFromString(@"NSTask") .....]]
而不要直接使用[NSTask ...]這種寫(xiě)法。
NSClassFromString的好處是:
1 弱化連接,因此并不會(huì)把沒(méi)有的Framework也link到程序中。
2 不需要使用import,因?yàn)轭愂莿?dòng)態(tài)加載的,只要存在就可以加載。
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])];
}
}
有問(wèn)題,請(qǐng)留言
新浪微博:Passionuranus