2012-05-14 79 views
0

我已经在secondObject的帮助下创建了一个firstObject。现在我发布了secondObject第一个对象会发生什么。 这是我的代码。这个对象会发生什么

SecondObject *secondObject = [[SecondObject alloc]init]; 
FirstObject *firstObject = [[FirstObject alloc]initWithSecondObject:secondObject]; 
[secondObject doSomethings]; 
[firstObject doSomeThings]; 
[secondObject release]; 

回答

2

除非secondObject具有firstObject它释放的引用,什么都不会发生firstObject

+0

谢谢,这对我很有帮助。 – ohmprakash

1

如果firstObject需要参考保持到secondObject超越它的initWithSecondObject:方法,它应该保留secondObject。这将阻止secondObject被释放,即使您在上面的代码中释放它。当你释放一个物体时,你会说:“我完成了这个。”但是,如果没有其他对象当前正在使用该对象,则该对象将被解除分配(由保留计数确定,而不是您应该查看该对象)。

+1

感谢它帮助我很多。 – ohmprakash