gpt4 book ai didi

iphone - 你能帮我理解 cocoa/objective-c 中的保留计数吗?

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

> .h file:
NSString *myString;
@property (nonatomic, retain) NSString *myString;

> .m file:
self.myString = [[NSString alloc] init];

如果我没记错的话,我最终会得到一个保留计数为 +2 的 NSString 实例。对吗?

我很好奇,因为 Apple 的位置示例使用了“self”。用于初始化。为什么?我检查了一下,确实显示保留计数为 +2。

最佳答案

回答你的第一个问题:

是的,保留计数为 2。

<小时/>

回答你的第二个问题:

使用原因:

self.myString = x;

这相当于:

[self setMyString:x];

以便正确执行所有属性处理代码。这包括 KVO 通知,以及在传入 x 时自动保留 x 的代码。

如果您只是简单地设置:

myString = x;

在 .m 文件中,您将绕过所有隐藏的属性设置代码,只需将 myString 成员变量设置为指向 x 的指针。

关于iphone - 你能帮我理解 cocoa/objective-c 中的保留计数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/486748/

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