以下是我的代码:
.h 文件:
#import "Foundation/Foundation.h"
@interface GObject:NSObject{
NSTimer* m_Timer;
}
@property(nonatomic, retain) NSTimer* m_Timer;
- (void)Initialize;
- (void)TimerCallback:(NSTimer*)pTimer;
@end
.m 文件:
@implementation GObject
@synthesize m_Timer
- (void) Initialize{
self.m_Timer = [NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector: @selector(TimerCallback:)
userInfo: nil
repeats: YES];
}
- (void)TimerCallback:(NSTimer*)pTimer {
//Some Code
}
- (void)dealloc {
[m_Timer invalidate]; //--Crashes Here
[m_Timer release];
m_Timer = nil;
[super dealloc];
}
@end
现在,当调用 dealloc 时,程序在使计时器无效的行中崩溃。接下来的两行甚至没有被调用。我收到“EXC_BAD_ACCESS”错误。谁能告诉我为什么会发生这种情况,以及在类中停止和释放 NSTimer 成员变量的正确方法是什么。