0

之前的帖子我删了。。。

如果我有一个拥有对象 objA 的类,我应该使用哪一个?我知道如果该对象不属于该类,则需要保留它。

@class A

@property (retain) ObjectA objA;

@end

@implementation A

-(void) func {
   self.objA = [[ObjectA alloc] init];
}

@end

如果类 A 中的 objA 设置为保留,并使用 init 函数在 func 中初始化。这会给出 2 个保留计数还是仅 1 个保留计数。

4

2 回答 2

1

alloc 给出保留计数 1。 self.objA = 将给出保留计数 2(因为保留属性)

于 2012-05-25T07:33:02.437 回答
0

我会这样做:

   - (void) func {objA = [[ObjectA alloc] init]; }

或者

   - (void) func { self.objA = [[[ObjectA alloc] init] autorelease]; }

以防止内存泄漏。但是我更喜欢第一个解决方案

于 2012-05-25T08:08:41.840 回答