Joa*_*son 3 iphone xcode nstimer ipad
我在我的应用程序中使用了很多计时器.对于录制时间,移动物体,褪色等我在不同时间在同一视图中使用相同的计时器.我应该如何正确地宣布和宣布我的计时器?
Atm Im宣布这样的计时器:
fadeTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(bortInfo) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)
一旦我不使用它,我这样做:
[fadeTimer invalidate];
fadeTimer = nil;
Run Code Online (Sandbox Code Playgroud)
我离开视图时的保留计数在每个计时器上为0.我应该在dealloc中释放计时器吗?我的应用程序运行得非常好,但有时会崩溃.
我用来更新标签的clockTimer使用时间
[[NSRunLoop mainRunLoop] addTimer:clockTimer forMode:NSRunLoopCommonModes];
Run Code Online (Sandbox Code Playgroud)
一旦我使clockTimer无效,我是否需要对此mainLoop做任何事情?
总而言之,请向我提供有关与计时器合作的一些信息.
非常感谢你!
乔金 -
你没有正确地保留你的计时器 - 如果你想再次参考它们,你应该保留它们.我会使用属性(即头文件中)执行此操作
@property (nonatomic, retain) NSTimer *fadeTimer;
Run Code Online (Sandbox Code Playgroud)
并改变你的代码说
self.fadeTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(bortInfo) userInfo:nil repeats:YES];
// Put this whenever you want to remove your timer and in your dealloc method.
[fadeTimer invalidate];
self.fadeTimer = nil;
Run Code Online (Sandbox Code Playgroud)
这将确保您的对象保留您的计时器.否则你只需要希望计时器保持不变并且不会被iPhone自动释放.正如你所说它偶尔崩溃,这可能是原因;)
我担心我对运行循环知之甚少,但我很困惑为什么你不只是使用法线NSTimer来安排事情 - 为什么还要干扰与运行循环的交互呢?
| 归档时间: |
|
| 查看次数: |
5309 次 |
| 最近记录: |