我[[self alloc] init] 在编写工厂方法时无法理解其用法。我知道工厂方法是创建类实例的便捷方法,它们为您执行alloc、init和autorelease。我可以看到它是如何形成的,例如在NSArray使用工厂方法arrayWithArray:或array等声明属性时调用它来设置它。我显然可以看出这与直接(显式)调用allocand有何不同init。
我的问题是我不了解更深层次的工厂方法。我在网上看到了一个解释,它说可以使用类工厂方法来基本上封装这样的东西,而不是显式调用alloc和调用:init
+(instancetype)createWithString:(NSString *)string
{
return [[self alloc] initWithString:string];
}
但是如何有效instancetype地[self alloc]允许子类使用类工厂方法呢?