【发布时间】:2018-07-29 11:36:05
【问题描述】:
我用下面的代码测试了一下,发现autorelease objc永远不会释放。
__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
}
【问题讨论】:
标签: ios objective-c autorelease nsautoreleasepool