下面有两种编程方式来编程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