我的 .h 文件中有以下代码:
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <AVFoundation/AVFoundation.h>
#import <MapKit/MapKit.h>
@interface LandingController : UIViewController<CLLocationManagerDelegate> {
CLLocationManager *LocationManager;
AVAudioPlayer *audioPlayer;
}
@property (nonatomic, retain) NSTimer *messageTimer;
- (IBAction)LoginButton:(id)sender;
@end
我的 .m 文件中有以下代码:
@interface LandingController ()
@end
@implementation LandingController
@synthesize messageTimer;
- (void)checkForMessages
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"BINGO:"
message:@"Bingo This Works"
delegate:nil
cancelButtonTitle:@"Okay"
otherButtonTitles:nil];
[alert show];
}
- (IBAction)LoginButton:(id)sender {
if ([UserType isEqualToString:@"Owner"]) {
if (messageTimer){
[self.messageTimer invalidate];
self.messageTimer = nil;
}
} else {
if (!messageTimer){
self.messageTimer = [NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(checkForMessages)
userInfo:nil
repeats:YES];
}
}
}
@end
但是当我调用无效时,我的计时器不想停止。
LoginButton 只按下了两次,一次当 strResult 是 = 到“Guard”,然后应用程序将其更改为等于“Owner”并且用户再次按下登录按钮,所以我认为我没有设置多个计时器。
按下登录按钮并启动计时器后,我切换到另一个视图,然后再次返回以再次按下登录按钮,这是我希望计时器停止的时候。我是否需要做任何特别的事情来获取 messageTimer ,因为我切换了一会儿视图然后又回来了?
有任何想法吗?
谢谢!