下面有兩種編程方式來編程alloc
和init
各種類和'類型'的對象。
Objective-C中編程對象的創建
- (id)buildObjectOfClass:(NSString *)classString andType:(NSString *)typeString
{
id buildObject;
Class className = NSClassFromString(classString);
SEL initWithTypeSelector = NSSelectorFromString(@"initWithType:");
if ([className instancesRespondToSelector:initWithTypeSelector] == YES) {
buildObject = [[className alloc] performSelector:initWithTypeSelector
withObject: typeString];
}
return buildObject;
}
這種方法實現最初編寫更簡潔的簡單:
{ return [[className alloc] initWithType:typeString]; }
我的問題是:1)是必要的詳細的版本? 2)如果是這樣,它是否被編程爲儘可能最好?我忽略了哪些捷徑或最佳實踐?
你能解釋一下這個*爲什麼嗎?我無法想象我會想要做這件事的一個例子。你通過從字符串構建類和選擇器來打開自己的大量錯誤/崩潰。 – 2013-05-14 16:30:11