gpt4 book ai didi

objective-c - 总是强制性的还是有时是可选的?

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:33 24 4
gpt4 key购买 nike

当我阅读关于 Objective-C 的书时,我遇到了一个初始化类的示例,如下所示:

ClassName *p = [[ClassName alloc] init]; 

虽然我们首先需要分配内存来存储 ClassName 在初始化之前拥有的数据是有道理的,但以下方法同样有效:

ClassName *p = [ClassName alloc]; 

总是需要 init 吗?

最佳答案

理论上,这在技术上不是必需的。这是因为 NSObjectinit 方法实际上只是 return self;。但是,在实践中,它绝对是必不可少的。对象在 init 方法中执行内部设置 - 创建内部状态、分配私有(private)成员以及通常为操作做好准备。 init 方法甚至可能不会返回与您分配的对象相同的对象。

将其分为两个阶段:alloc 分配内存,仅此而已 - 它类似于 Java 的 newinit 配置内存状态,以便对象可以执行其任务 - 类似于 Java 调用构造函数。不要遗漏它!

关于objective-c - 总是强制性的还是有时是可选的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575735/

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