我删除了之前的帖子......
如果我有一个拥有对象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个计数。
答案 0 :(得分:1)
alloc给出保留计数1。 self.objA =将给出保留计数2(因为保留属性)
答案 1 :(得分:0)
我会做的:
- (void) func {objA = [[ObjectA alloc] init]; }
或
- (void) func { self.objA = [[[ObjectA alloc] init] autorelease]; }
防止内存泄漏。但是我更喜欢第一种解决方案