instancetype
の代わりに値を返すクラスメソッドを作成する方法を学びたいですid
。
簡単なデモンストレーション:
@implementation MyGenericManagedObject
+ (instancetype)existingObjectByObjectID:(NSManagedObjectID *)objectID {
return (__typeof([self alloc]))[managedObjectContext() existingObjectWithID:objectID error:nil];
}
このメソッドをこのように記述しても機能しますが、削除する(__typeof([self alloc]))
と、「'NSManagedObject *' をタイプ 'MyGenericManagedObject *' にキャストする互換性のないポインター タイプが発生し始めます。
同じクラスのクラス メソッド内からインスタンス型を取得する正しい方法は何ですか?