Я протестировал его со следующим кодом и обнаружил, что объект autorelease никогда не выпускается.
__weak id ref;
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *str = [NSString stringWithFormat:@"test"]; // add autoreleasePool
ref = str;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"viewWillAppear:%@",ref); // result test
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"viewDidAppear:%@",ref); // result test
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
NSLog(@"%@",ref); // If I click long after,But it has not been released
}