[NSTimer scheduledTimerWithTimeInterval:0.033 target:self selector:@selector(gameLoop)
userInfo:nil repeats:YES];
启动它后,我没有做任何事情来解除激活或杀死这个计时器。 安全吗?或者它会导致我泄漏记忆?
答案 0 :(得分:4)
它不应该泄漏内存。你没有保留计时器。运行循环将保留它(我认为),但它会在它不再需要它时释放它。
答案 1 :(得分:2)
计时器由运行循环保留,因此您不需要自己保留它。
但是计时器将保留其目标,因此只要它重复并且您没有使其无效,您的目标对象将不会被释放。你需要选择一个好的时间来调用invalidate
,这将导致运行循环释放它。
请注意,您不应该自己保留计时器,否则会有保留周期的风险。
(我昨天回答了这个问题并接受了教育。试着赎罪。)