gpt4 book ai didi

cocoa - 从 [[class alloc] init] 返回 nil 被认为是好的做法吗?

转载 作者:行者123 更新时间:2023-12-03 16:26:17 25 4
gpt4 key购买 nike

这是 Objective-C 中的常见习惯用法吗?

我只在 [[NSImage alloc] initWithContentsOfFile: str] 上看到过它,它总是让我认为存在内存泄漏,因为我调用了 alloc ,口头禅是:“调用 alloc,你必须调用release” - 除非这是你不需要的情况之一。

最佳答案

这是一个常见的习惯用法,表示初始化对象时出现错误。你是对的,但是,分配的实例必须被释放。所以模式是

- (id)init
{
self = [super init];
if(self != nil) {
//... do init
if(errorInInit) {
[self release];
return nil;
}
}

return self;
}

关于cocoa - 从 [[class alloc] init] 返回 nil 被认为是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470550/

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