编辑:下面定义的问题实际上发生在这段代码中:
int main(int argc, const char * argv[])
{
@autoreleasepool
{
XYZPerson *myPerson = [XYZPerson person];
myPerson = nil;
NSLog(@"The end.");
}
}
方法“人”是工厂方法。
我有以下代码:
int main(int argc, const char * argv[])
{
@autoreleasepool
{
XYZPerson *myPerson = [[XYZPerson alloc] init];
myPerson = nil;
NSLog(@"The end.");
}
}
XYZPerson 覆盖了 dealloc 方法,以便它使用 NSLog 打印出一些东西。我希望上面的代码输出如下内容:
Dealloc!
The end.
但这并不像我预期的那样:
The end.
Dealloc!
我做错了什么还是我误解了 ARC 的概念?