我在iphone应用程序中添加了一个NSTimer。当我运行应用程序时,它失败了。我跟踪了它,发现它在“0x3050c3ad <+0013> call 0x306aeaa5”处停止,并且不能在调试器中继续。
如果你知道,请告诉我应用程序出了什么问题以及如何解决它。
谢谢!
代码是:
NSTimer *m_heartBeatTimer;
@property(nonatomic, retain) NSTimer *m_heartBeatTimer;
@synthesize m_heartBeatTimer;
-(void)HeartBeatTimer:(NSTimer *)timer
{
[csocket CloseSocket];
}
case PING:
{
[self SendDataToServer:"00" Type:PONG];
if(m_heartBeatTimer != nil)
[m_heartBeatTimer invalidate];
m_heartBeatTimer = [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(HeartBeatTimer:) userInfo:nil
repeats:NO];
} break;发布于 2010-08-14 11:42:51
lqf,
首先,您应该通过self.m_heartBeatTimer访问计时器,因为您在@property声明中声明了它是保留的。如果不使用self.前缀,则不会使用设置器,因此不会保留在@property声明中指定的计时器。
我不知道你的模糊错误消息是什么,但我猜它与内存有关。请确保使用self.前缀,并让我知道这是否有效。如果你在运行控制台上确实有EXC_BAD_ACCESS输出的错误消息,请更新你的帖子,这样人们就可以使用它了。
-Rob
https://stackoverflow.com/questions/3481776
复制相似问题