这个对象会发生什么

时间:2012-05-14 05:29:04

标签: objective-c ios object

我在secondObject的帮助下创建了一个firstObject。现在我释放了secondObject会对firstObject发生什么。 这是我的代码。

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

2 个答案:

答案 0 :(得分:2)

除非secondObject引用了firstObject,否则firstObject不会发生任何事情。

答案 1 :(得分:1)

如果firstObject需要在其secondObject方法之外保留对initWithSecondObject:的引用,则应保留secondObject。即使您在上面的代码中发布它,也会阻止secondObject被释放。当你发布一个对象时,你会说:“我已经完成了这个。”但是,如果当前没有其他对象正在使用它,则该对象将被释放(由保留计数确定,而不是您应该查看它)。