我这里有这个代码...
#import <Foundation/Foundation.h>
#import "Chip.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Chip *chip = [[Chip alloc] init];
[chip release]; //Chip should be gone
NSLog(@"%@", chip);
[pool drain];
return 0;
}
为什么芯片发布后打印出来还是给我描述。此时不应该将其删除吗?
最佳答案
芯片
不见了。你只是在和它的幽灵说话。
添加一个dealloc
覆盖来记录调用。您应该看到释放按预期发生。该对象被释放,但没有发生任何其他事情来破坏内存,并且您的调用恰好没有侵入会导致麻烦的地方。
关于objective-c - 为什么 Objective-C 对象在释放后仍然存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819451/