Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@end
Person.m
#import "Person.h"
@implementation Person
- (void)dealloc
{
NSLog(@"Person dealloc:%p",self);
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Person.h"
Person * test1();
int main(int argc, const char * argv[]) {
Person *p1 = test1();
NSLog(@"p1:%p",p1);
p1 = nil;
Person *p2 =test1();
NSLog(@"p2:%p",p2);
p2 = nil;
Person *p3 =test1();
NSLog(@"p3:%p",p3);
p3 = nil;
return 0;
}
Person * test1()
{
Person *p1 = [Person new];
return p1;
}
在ARC模式下,上面代码执行之后,只看到p2和p3对象调用dealloc方法了,p1没调用,请问是什么原因