最近的 Objective-C 编译器引入了“instancetype”关键字,除其他外,它可用于提供类型化集合。. .
我看到了 instancetype 的另一个用途,即在类的“objectWith”类型方法中使用它。例如:
@interface Car
+(instancetype)carWithWheels:(NSArray*)wheels;
@end
理由是编译器将对 initWith 方法进行类型检查,但不会对“objectWith”方法进行类型检查。
除了可能更容易键入之外,使用“instancetype”代替实际的类名有什么好处?例如:
@interface Car
+(Car*)carWithWheels:(NSArray*)wheels;
@end