作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我有以下属性:
@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/
我是一名优秀的程序员,十分优秀!