gpt4 book ai didi

iphone - 仅使用 alloc 而不使用 init 是否正确/优雅?

转载 作者:太空狗 更新时间:2023-10-30 03:39:51 27 4
gpt4 key购买 nike

如果我们不想在我们的类中实现 init 方法,并且记住 NSObject 中的 init 只返回一个没有初始化的对象实例,如果我们已经得到了,我不明白调用 init 的意义带有分配的实例。我已经尝试过并且它有效,但我不确定它不会导致 future 的问题。

myClass *newObject = [myClass alloc];

代替:

myClass *newObject = [[myClass alloc] init];

非常感谢。

最佳答案

不,仅仅调用 alloc 是不正确的。 alloc 将对象的所有实例变量清零,然后 init 有机会将所有或部分实例变量设置为其默认值。有些类甚至使用它们的 init 方法来创建另一个实例并返回该实例而不是您分配的实例。

许多类期望它们的 init 方法被调用,如果您不调用 init 可能会导致崩溃。如果您谈论的是直接从 NSObject 继承并且不需要初始化实例变量的自定义类,您可能会使用 [myClass alloc] 但它绝对不好编程风格。

关于iphone - 仅使用 alloc 而不使用 init 是否正确/优雅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4085968/

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