gpt4 book ai didi

iOS 非弧 : should I use autorelease when self. 属性 = [[Obj alloc] init]?

转载 作者:行者123 更新时间:2023-11-28 19:12:20 27 4
gpt4 key购买 nike

如果我有以下属性:

@property (nonatomic, retain) MyObject *theObject;

那么如果我想创建一个新的 MyObject,我应该:

self.theObject = [[MyObject alloc] init];

或:

self.theObject = [[[MyObject alloc] init] autorelease];

最佳答案

你必须使用自动释放。如果不这样做,对象将有两个释放计数(一个来自 alloc,一个来自 retain by the setter),所以当属性被取消设置时,它会被泄露。

这仅适用于强属性或保留属性和复制属性。 Assigned 和 weak 属性应该只分配一个 alloc-initted 对象,因为它们不会改变它的引用计数。

关于iOS 非弧 : should I use autorelease when self. 属性 = [[Obj alloc] init]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14603218/

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