注册 登录
主题 : iphone类代码用NSThread实作timer,解决NSTimer遇到tableview被拉拖会hold住问题
级别: 新手上路
UID: 9875
精华: 0
发帖: 6
可可豆: 51 CB
威望: 51 点
在线时间: 14(时)
注册时间: 2009-10-18
最后登录: 2015-10-16
0 楼:  发表于: 2009-12-22 14:43    发自: Web Page

iphone类代码用NSThread实作timer,解决NSTimer遇到tableview被拉拖会hold住问题    (在iOS代码库中浏览本帖)

用NSThread实作timer,因为用内建的nstimer,会因为在view加入了tableview,而在拉拖tableview时会产生timer整个hold住,因此自己实作了另一个timer解决会hold住的问题。  [attachment=6561] [attachment=6561]   [attachment=6562]

1223版本 增加归0按钮demo,测试结果请开log看^^
[ 此帖被ttask789tw在2009-12-23 11:14重新编辑 ]

附件: testTImer1223.zip (572 K) 下载次数:420
级别: 精灵王
UID: 1458
精华: 0
发帖: 168
可可豆: 16687 CB
威望: 16687 点
在线时间: 905(时)
注册时间: 2008-11-28
最后登录: 2018-06-25
1 楼:  发表于: 2009-12-22 19:24    发自: Web Page
NSString *time1 = [self calNowTime];//重置之後不會歸0,繼續累計
    NSString *time2 = [self calCountTime];//重置之後就會歸0

????
2009-12-22 11:23:33.957 testTImer[3275:207] 00:00.9,00:00.9
2009-12-22 11:23:34.057 testTImer[3275:207] 00:01.0,00:01.0
2009-12-22 11:23:34.157 testTImer[3275:207] 00:01.1,00:01.1
2009-12-22 11:23:34.257 testTImer[3275:207] 00:01.2,00:01.2
2009-12-22 11:23:34.357 testTImer[3275:207] 00:01.3,00:01.3
2009-12-22 11:23:34.458 testTImer[3275:207] 00:01.4,00:01.4
2009-12-22 11:23:34.558 testTImer[3275:207] 00:01.5,00:01.5
2009-12-22 11:23:34.658 testTImer[3275:207] 00:01.6,00:01.6
2009-12-22 11:23:34.758 testTImer[3275:207] 00:01.7,00:01.7
两个 效果是一样的啊?没有发现归0 的效果哦!
请LZ赐教:)

级别: 新手上路
UID: 9875
精华: 0
发帖: 6
可可豆: 51 CB
威望: 51 点
在线时间: 14(时)
注册时间: 2009-10-18
最后登录: 2015-10-16
2 楼:  发表于: 2009-12-23 10:37    发自: Web Page
因为我设定的stop按钮是呼叫[timer pauseTimer]; ,只将两个都暂停,如果要只将第二个秒数归0,要去呼 叫[timer clearNextMs];这个function,你可以试着将rootView.m裡的

- (IBAction)stop {
    [timer pauseTimer];
    
}
改成  
- (IBAction)stop {
    [timer clearNextMs];
    
}
就会将第二个秒数归0了
级别: 新手上路
UID: 7513
精华: 0
发帖: 4
可可豆: 178 CB
威望: 178 点
在线时间: 190(时)
注册时间: 2009-08-03
最后登录: 2015-11-03
3 楼:  发表于: 2010-05-07 13:39    发自: Web Page
谢谢大大提供教学
一次学两个
一个NSThread
一个OO....
级别: 骑士
UID: 19784
精华: 0
发帖: 215
可可豆: 1925 CB
威望: 1925 点
在线时间: 330(时)
注册时间: 2010-05-17
最后登录: 2017-03-09
4 楼:  发表于: 2010-09-03 13:52    发自: Web Page
学习了
还我朗朗乾坤
级别: 侠客
UID: 17855
精华: 0
发帖: 103
可可豆: 553 CB
威望: 553 点
在线时间: 598(时)
注册时间: 2010-04-19
最后登录: 2019-04-10
5 楼:  发表于: 2010-09-16 10:59    发自: Web Page
其实这样就可以了 不用那么麻烦的  呵呵

    timer=[NSTimer timerWithTimeInterval:1.0                      
                                target:self                      
                                selector:@selector(staticUpdateTime)      
                                 userInfo:nil
                                 repeats:YES];
    NSRunLoop * main=[NSRunLoop currentRunLoop];
    [main addTimer:timer forMode:NSRunLoopCommonModes];

把timer加到RunLoop 中就行了,拖的时候不会暂停timer
级别: 新手上路
UID: 17835
精华: 0
发帖: 15
可可豆: 150 CB
威望: 150 点
在线时间: 79(时)
注册时间: 2010-04-18
最后登录: 2016-03-27
6 楼:  发表于: 2011-08-19 17:21    发自: Web Page
mark一下,受教了。。。

级别: 侠客
UID: 40100
精华: 0
发帖: 109
可可豆: 982 CB
威望: 982 点
在线时间: 345(时)
注册时间: 2010-11-28
最后登录: 2019-01-22
7 楼:  发表于: 2011-09-13 17:04    发自: Web Page
i need 。thanks
级别: 新手上路
UID: 93577
精华: 0
发帖: 1
可可豆: 10 CB
威望: 10 点
在线时间: 39(时)
注册时间: 2011-09-17
最后登录: 2012-12-16
8 楼:  发表于: 2011-10-25 23:06    发自: Web Page
回 5楼(wxl87) 的帖子
人才啊!正遇到这问题,多线程不会搞,这方法真是太好了!
级别: 新手上路
UID: 106882
精华: 0
发帖: 60
可可豆: 258 CB
威望: 258 点
在线时间: 43(时)
注册时间: 2011-11-21
最后登录: 2016-03-27
9 楼:  发表于: 2012-02-25 20:11    发自: Web Page
回 5楼(wxl87) 的帖子
谢谢,很方便的解决方法。
我默默的做着自己喜欢的事情。

http://weibo.com/zhuzanxun

http://blog.sina.com.cn/winsonappsupport

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部