Я пытаюсь провести некоторый эксперимент.
- (IBAction)btn1Action:(id)sender {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"popvc2id" sender:self];
});
NSLog(@"TAP");
}
Когда кнопка будет нажата, выполнение перехода займет 1 секунду, а при повторном нажатии этой кнопки будет дважды запущен переход, поэтому будут созданы два экземпляра ViewController
.
В инструментах я вижу два экземпляра, но один из них leaked VC object
.
Теперь то, что я пытаюсь сделать, это
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
VC2 *vc2 = [segue destinationViewController];
[ary addObject:vc2];
if(ary.count > 1) {
VC2 *vc = (VC2*)ary[1];
vc = nil;
[ary removeObjectAtIndex:1];
}
[ary removeAllObjects];
NSLog(@"-> %@", vc2);
}
сохранить запись VC objects
и попытаться уничтожить второй объект, чтобы предотвратить утечку памяти.
Но он не работает, как я могу это исправить?