gpt4 book ai didi

objective-c - 保留 iOS setter 方法中的发布惯例

转载 作者:行者123 更新时间:2023-11-28 22:48:13 24 4
gpt4 key购买 nike

IOS setter 中的常见做法如下:

- (void)setMyString:(NSString *)newString {
if ( newString != myString ) {
[myString release];
myString = [newString retain];
}
}

相反,这不是好的做法

- (void)setMyString:(NSString *)newString {
if ( myString != nil ) [myString release];
myString = [newString retain];
}
}

在第一种情况下检查相等性的原因是什么? seconds 情况下的问题是什么?

最佳答案

如果你像这样设置 [object setMyString:[object myString]]; 而没有检查相等性 - 它会崩溃!因为它会在您发送消息保留之前被释放。 (如果只有对象自己的字符串)。同样在第一个示例中,我们检查相等性以避免额外的操作。

关于objective-c - 保留 iOS setter 方法中的发布惯例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641826/

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