gpt4 book ai didi

objective-c - 从同一类的类方法中了解实例类型的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 04:54:10 26 4
gpt4 key购买 nike

我想学习如何让类方法返回instancetype值而不是 id .

简单演示:

@implementation MyGenericManagedObject
+ (instancetype)existingObjectByObjectID:(NSManagedObjectID *)objectID {
return (__typeof([self alloc]))[managedObjectContext() existingObjectWithID:objectID error:nil];
}

以这种方式编写此方法,它确实有效,但是如果我删除 (__typeof([self alloc]))我开始收到“不兼容的指针类型将‘NSManagedObject *’转换为‘MyGenericManagedObject *’。

从同一类的类方法内部获取实例类型的正确方法是什么?

最佳答案

@implementation MyGenericManagedObject
+ (instancetype)existingObjectByObjectID:(NSManagedObjectID *)objectID {
return (id)[managedObjectContext() existingObjectWithID:objectID error:nil];
}

只是转换到 id应该工作。

关于objective-c - 从同一类的类方法中了解实例类型的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17003990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com