这是我的摘录:
Foo *myFooOne = [[Foo alloc] initWithName:@"my string"];
Foo *myFooTwo = myFooOne;
[myFooOne release];
NSLog(@"Name: %@", myFooTwo.name);
为什么
myFooTwo.name
产生正确的输出,而不是runtime error
?2011-10-28 14:45:10.718 Example[6410:f803] Name: my string
谢谢。
最佳答案
您只是很幸运,已释放的内存尚未被其他用途重用并被覆盖。否则,它将失败。
在将NSZombieEnabled设置为YES的情况下运行您的应用,并且在运行时会引发错误。
关于ios - 为什么此RELEASE不会产生RUNTIME ERROR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7929475/