【发布时间】:2013-01-23 21:59:11
【问题描述】:
这是我的问题:
我有一个模型类,其中有一个NSTimer,我希望计时器在模型对象的整个生命周期内运行。初始化很简单:我在init 方法中只有以下代码行:
self.maintainConnectionTimer =
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(maintainConnection)
userInfo:nil
repeats:YES];
但是,我的问题是,如何在模型从内存中释放时使此计时器无效? 现在,这通常很容易,但是据我所知,当您安排NSTimer 操作系统维护一个指向 Timer 对象的强指针。
我应该如何处理这个问题?有没有在模型从内存中释放之前被调用的方法?
【问题讨论】:
-
我以前从来没有真正使用过这个......当我学习Objective-C时,我总是被告知
dealloc已经很少使用了。我的属性在dealloc方法中仍然有效吗? -
dealloc 怎么样?是的,他们会的。我正在输入它作为答案。
-
酷!如果您将此作为答案发布,我会接受它
-
查看其他人的评论。您将不得不采用不同的策略进行精简。
-
当您完成对象时,您可能必须手动使计时器无效。只要定时器在运行,它就不会被释放。
标签: iphone ios objective-c automatic-ref-counting nstimer