objective-c保留,分配和复制?

时间:2012-05-25 07:29:05

标签: objective-c memory-management retain assign

我删除了之前的帖子......

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

@class A

@property (retain) ObjectA objA;

@end

@implementation A

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

@end

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我会做的:

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

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

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