ios - 当我不创建 NSTimer 对象时如何使计时器无效

标签 ios nstimer

我不想创建 NSTimer 对象。 如何使计时器无效?我想使 viewWillDisappear 中的计时器无效。

-(void) viewDidLoad
{ 
 [super viewDidLoad];
 [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];
}

最佳答案

一个

你必须坚持你创建的计时器:

@interface MONObject ()
@property (nonatomic, retain) NSTimer * timerIvar;
@end

@implementation MONObject
...
- (void)viewDidLoad
{ 
 [super viewDidLoad];
 self.timerIvar = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];
}

- (void)invalidateTimer
{
  [self.timerIvar invalidate];
  self.timerIvar = nil;
}

- (void)viewWillDisappear:(BOOL)animated
{
  ...
  [self invalidateTimer];
}

B

另一种选择是使回调中传递的计时器无效,但这不会在 viewDidUnload: 中发生。因此,它不太适用于这种情况:

- (void)onTimer:(NSTimer *)pTimer
{
  [pTimer invalidate];
}

关于ios - 当我不创建 NSTimer 对象时如何使计时器无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12191558/

相关文章:

ios - 如何在我的应用程序中保存表格 View 的数据?

ios - Swift NSTimer 将 userInfo 检索为 CGPoint

ios - 将计时器设置为 UIPageViewController

ios - SWIFT - NSTimer,传递用户信息

objective-c - 定期启动/唤醒 iOS 应用程序

iphone - NSTimer scheduleTimerWithTimeInterval 和 CoreAnimation

ios - UIKit Dynamics collision - 保持 Barriers 元素静止

ios - UITabBarItem 改变图片高度和宽度

ios - UIAlertViews、UIActionSheets 和 keyWindow 问题

ios - Xcode 中是否可以对不同的手机尺寸有不同的约束?