我想学习如何使类方法返回instancetype
值而不是id
.
简单演示:
@implementation MyGenericManagedObject
+ (instancetype)existingObjectByObjectID:(NSManagedObjectID *)objectID {
return (__typeof([self alloc]))[managedObjectContext() existingObjectWithID:objectID error:nil];
}
以这种方式编写此方法,它确实有效,但如果我删除(__typeof([self alloc]))
我开始得到“不兼容的指针类型将'NSManagedObject *'转换为'MyGenericManagedObject *'。
从同一类的类方法中获取实例类型的正确方法是什么?