gpt4 book ai didi

iphone - Objective C (iphone) 关于发布的问题

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

如果我创建一个 View ,并将其添加为 subview 并将其添加到数组中,是否需要释放它两次?

    UIView* cat = [[UIView alloc] initWithFrame:someFrame];
[self.view addSubview:cat];
[self.animals addObject:cat];
[cat release];
[cat release];

对我来说,有 2 个发布声明似乎很奇怪,而且我还没有看到有人这样做。但是在这种情况下保留计数不会增加 2 吗?

最佳答案

您应该只有一个release — 来平衡allocaddSubView:addObject: 都不向调用者提供对象的所有权,因此调用者不需要通过 release 来平衡它们。阅读memory management guide应该为您清除所有这些。

记住“NARC”可能会有所帮助 - 如果您调用包含单词“new”、“alloc”、“< strong>retain”或“copy”,您需要释放它。正如您在上面的代码中看到的,只有 alloc 符合要求。由于您只 NARC 一次,因此您只需要释放一次。

关于iphone - Objective C (iphone) 关于发布的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672842/

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