gpt4 book ai didi

objective-c - self 测试是否仍然必要和/或有意义?

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:37 25 4
gpt4 key购买 nike

<分区>

Objective-C 实例中的常见初始化序列(例如在指定的初始化程序中)如下:

- (id)initWithFrame: (NSRect)frame {
self = [super initWithFrame: frame];
if (self != nil) {
// Do your stuff.
}
return self;
}

这是一个众所周知的模式,但是否真的有必要测试 self 是否已分配?我的意思是,如果 super 方法中出现问题,它会不会抛出一个异常而不是返回 nil?这是一个安全的模式吗?如果对 super 的调用出现问题但仍返回(随机)指针怎么办?

这当然是一个防御性编程的问题,但是对您确定永远不会有 nil 结果的案例进行如此多的测试确实看起来有些夸张。如果您知道它可能发生(必须记录在案),那么检查 self 当然很有意义。

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