gpt4 book ai didi

iphone - Objective-C:在释放父对象之前是否必须释放属性对象?

转载 作者:太空狗 更新时间:2023-10-30 03:47:13 24 4
gpt4 key购买 nike

假设我有一个名为“foo”的对象,另一个名为“bar”的对象作为属性。

当“foo”解除分配时,它会自动删除对“bar”的所有引用以便“bar”也解除分配吗?或者“foo”会在内存中的某个地方释放和“bar” float ?即使所有“bar”的引用都在“foo”中定义。

提前致谢。

最佳答案

如果 foo 对象有任何保留或副本(感谢 Dave)bar,例如当您将属性声明为以下之一时:

@property (nonatomic, retain) NSString *bar;
// Or
@property (nonatomic, copy) NSString *bar;

当你释放foo时,你需要释放bar:

- (void)dealloc
{
[bar release];

[super dealloc];
}

系统不会为你释放 bar 的内存空间,直到你清除所有对它的引用(即引用计数下降到 0),所以你必须监视你的自己引用计数和对象。

关于iphone - Objective-C:在释放父对象之前是否必须释放属性对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256926/

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