我以Parse的PFQuery
类为模型,为自己的项目(不是PFQuery的子类)构建自己的EMQuery
类。我的问题是,如果我想以Parse(PFQuery *query = [PFQuery queryWith...]
)的方式对类方法执行类似的调用,这将是正确的方法吗?
+ (instancetype)queryWithType:(EMObjectType)objectType {
EMQuery *query = [[self alloc] init];
return [query initWithQueryType:objectType];
}
- (id)initWithQueryType:(EMObjectType)objectType {
self = [super init];
if (self) {
}
return self;
}
最佳答案
否-您两次调用超类的初始化。
您的initWithQueryType应该替换对init的调用
+ (instancetype)queryWithType:(EMObjectType)objectType {
EMQuery *query = [self alloc];
return [query initWithQueryType:objectType];
}
例外是如果您的班级中的init做某事。在这种情况下,应将两个初始化
init
和initWithQueryType:
设置为一个调用另一个,而被调用的是唯一调用super init
的一个。这是指定的初始化程序所有初始化的主要解释是关于对象初始化Apple document的部分
关于ios - iOS:初始化对象的正确方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28464463/