分配属性时泄漏内存工具无法检测到泄漏,因此泄漏是否存在?
问题描述:
我编写iOS应用程序。我有班车和班轮。 Class Car有一个属性Wheel(在这个例子中,实际上,Car有多个车轮)。分配属性时泄漏内存工具无法检测到泄漏,因此泄漏是否存在?
在类汽车:
@property (nonatomic, retain) Wheel * wheel; //because it has retain, so I delete wheel in dealloc function.
当我具有Car对象,我初始化轮。
Car* car = [[Car alloc] init];
car.wheel = [[Wheel alloc] init];
我认为代码使泄漏内存,但在仪表工具检漏仪工具XCode中没有检测到它。那么,发生了什么?可能是我错了吗?
感谢您的帮助。
答
既然你宣布你wheel
财产保留给它一个对象,发送autorelease
邮件到您的Wheel
对象:
Car* car = [[Car alloc] init];
car.wheel = [[[Wheel alloc] init] autorelease];
这是编译ARC启用?另外,你的'dealloc'是什么样的? – Hyperbole 2013-02-19 04:02:14
@Hyperbole - 关于ARC的一个很好的问题,虽然不会有dealloc调用或释放调用在启用时抛出错误? – 2013-02-19 04:05:14
@XenElement当然,但他没有说他正在调用'release',他说他删除了它,可以解释为'self.wheel = nil;'或'_wheel = nil;',这不是编译器错误在ARC下。 – Hyperbole 2013-02-19 04:06:22