Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:初始化对象的正确方法?_Ios_Objective C_Initialization_Class Method_Instance Methods - Fatal编程技术网

iOS:初始化对象的正确方法?

iOS:初始化对象的正确方法?,ios,objective-c,initialization,class-method,instance-methods,Ios,Objective C,Initialization,Class Method,Instance Methods,以Parse的PFQuery类为模型,我正在为自己的项目(不是PFQuery的子类)构建自己的EMQuery类。我的问题是,如果我想以Parse的方式对类方法执行类似的调用(PFQuery*query=[pfqueryquerywhith…]),这是正确的方法吗 + (instancetype)queryWithType:(EMObjectType)objectType { EMQuery *query = [[self alloc] init]; return [query i

以Parse的
PFQuery
类为模型,我正在为自己的项目(不是PFQuery的子类)构建自己的
EMQuery
类。我的问题是,如果我想以Parse的方式对类方法执行类似的调用(
PFQuery*query=[pfqueryquerywhith…]
),这是正确的方法吗

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [[self alloc] init];
    return [query initWithQueryType:objectType];
}

- (id)initWithQueryType:(EMObjectType)objectType {

    self = [super init];
    if (self) {

    }

    return self;
}

否-因为您两次调用超类的init

您的initWithQueryType应该替换对init的调用

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [self alloc];
    return [query initWithQueryType:objectType];
}
例外情况是,如果类中的init执行某些操作。在这种情况下,两个init
init
initWithQueryType:
应该设置为一个调用另一个,被调用的一个是唯一调用
super init
的一个。这一个是指定的初始化器


所有初始化的主要解释是关于对象初始化的部分

否-因为您两次调用了超类的init

您的initWithQueryType应该替换对init的调用

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [self alloc];
    return [query initWithQueryType:objectType];
}
例外情况是,如果类中的init执行某些操作。在这种情况下,两个init
init
initWithQueryType:
应该设置为一个调用另一个,被调用的一个是唯一调用
super init
的一个。这一个是指定的初始化器


所有初始化的主要解释是关于对象初始化的部分

否-因为您两次调用了超类的init

您的initWithQueryType应该替换对init的调用

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [self alloc];
    return [query initWithQueryType:objectType];
}
例外情况是,如果类中的init执行某些操作。在这种情况下,两个init
init
initWithQueryType:
应该设置为一个调用另一个,被调用的一个是唯一调用
super init
的一个。这一个是指定的初始化器


所有初始化的主要解释是关于对象初始化的部分

否-因为您两次调用了超类的init

您的initWithQueryType应该替换对init的调用

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [self alloc];
    return [query initWithQueryType:objectType];
}
例外情况是,如果类中的init执行某些操作。在这种情况下,两个init
init
initWithQueryType:
应该设置为一个调用另一个,被调用的一个是唯一调用
super init
的一个。这一个是指定的初始化器


所有初始化的主要解释是关于对象初始化的部分

不要调用两个init方法;打一次电话。像这样:

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [[self alloc] initWithQueryType:objectType];
    return query;
}

不要调用两个init方法;打一次电话。像这样:

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [[self alloc] initWithQueryType:objectType];
    return query;
}

不要调用两个init方法;打一次电话。像这样:

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [[self alloc] initWithQueryType:objectType];
    return query;
}

不要调用两个init方法;打一次电话。像这样:

+ (instancetype)queryWithType:(EMObjectType)objectType {
    EMQuery *query = [[self alloc] initWithQueryType:objectType];
    return query;
}

啊,我明白了。完美的解释!谢谢你的链接。:)啊,我明白了。完美的解释!谢谢你的链接。:)啊,我明白了。完美的解释!谢谢你的链接。:)啊,我明白了。完美的解释!谢谢你的链接。:)这还不够。您必须调用一个且只能调用一个init方法。一个还不够。您必须调用一个且只能调用一个init方法。一个还不够。您必须调用一个且只能调用一个init方法。一个还不够。必须调用一个且只能调用一个init方法。