gpt4 book ai didi

objective-c - 是否应该在 alloc/new/init 方法上使用 instancetype?

转载 作者:太空狗 更新时间:2023-10-30 03:20:19 25 4
gpt4 key购买 nike

根据clang documentation , 返回 id 的方法隐式知道返回 instancetype 当它是以 newalloc 开头的类方法时>,或以 retainautoreleaseinitself 开头的实例方法。

为了保持一致性,这些方法是否也应该写成在新代码中显式返回instancetype

- (instancetype)init {
self = [super init];
if (self) {
// perform initialization
}
return self;
}

是否有关于为什么或为什么不或任何推理的文档?似乎在这种情况下,它对编译器的解释完全相同。

最佳答案

这实际上不是必需的,因为编译器会自动将此类方法有效地提升为返回 instancetype(如您所述)。

automatic inference记录在 llvm 文档中。

个人?我总是将它们显式声明为 instancetype,因为它准确地描述了契约,并且便于以后进行重构。

关于objective-c - 是否应该在 alloc/new/init 方法上使用 instancetype?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846032/

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