gpt4 book ai didi

ios - 我不应该使用self-> iVar = some;而不是iVar =我的init中有东西

转载 作者:行者123 更新时间:2023-12-01 19:07:49 26 4
gpt4 key购买 nike

在ObjectiveC中,推荐的init方法成语是:

- (id)init {
if (self = [super init]) {
myInstanceVariable = someConstant;
}
return self;
}

这是因为,superClass的init可能会返回与当前对象不同的对象,并使用[self release]释放当前对象;

如果发生这种情况:

1)对[super init]的调用完成后,是否可以控制返回原始对象的init方法?

2)而且,下一行是否将设置原始对象的myInstanceVariable(在该对象上,称为release的 super class )?

如果是这种情况,请将行更改为:

self-> myInstanceVariable = someConstant;

帮助(以便设置由[super init]返回的对象的myInstanceVariable而不是原始对象)?

最佳答案

1)将在if条件下进行分配。

2)设置myInstanceVariable时,self已经指向新对象,因为先执行if条件中的赋值。实际上,如果if条件中的分配不成功,则不会处理myInstanceVariable分配。

顺便说一句。据我所知,所有对myInstanceVariable的直接调用都解析为:

self-> myInstanceVariable无论如何。

编辑:
只是为了在评论中解决您的问题,请看一下以下答案:
https://stackoverflow.com/a/1341801/703809

关于ios - 我不应该使用self-> iVar = some;而不是iVar =我的init中有东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18638175/

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