首页 > 试题广场 >

有以下ViewController类,当前显示了一个MyVi

[单选题]
有以下ViewController类,当前显示了一个MyViewController,当该ViewController dismiss后控制台打印什么?(      )
@interface MyViewController ()
@property (nonatomic, weak) NSTimer *timer1;
@property (nonatomic, strong) NSTimer *timer2;
@end
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];
_timer1 = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(onTimer:) userInfo:@{@"obj":@(1)} repeats:YES];
}
- (void)onTimer:(NSTimer *)timer{
NSLog(@"%@", timer.userInfo[@"obj"]);
}
- (void)dealloc{
NSLog(@"dealloced");
[_timer1 invalidate];
_timer2 = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(onTimer:) userInfo:@{@"obj":@(2)} repeats:YES];
}
@end
  • dealloced, 1,...,1
  • dealloced, 2,...,2
  • 1,2,...,1,2
  • 1,...,1
由于dismiss后,_timer1没有释放,dealloc根本就不会调用,会一直每隔2s执行一次 - (void)onTimer:(NSTimer *)timer
发表于 2019-11-15 15:00:14 回复(0)
没有开线程
发表于 2021-05-20 18:28:14 回复(0)