在我的应用中,
我有一个3标签,
在第一个标签上,我有一个按下开始按钮时启动的计时器。
当我们来自另一个标签时,计时器没有得到更新。
为了更新计时器,我使用下面的代码:
myticker = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(ShowActicity) userInfo:nil repeats:YES];
-(void)ShowActicity
{
Here I have the ticks,minute,hour values
ticks =ticks + 1;
if(ticks > 59)
{
minute = minute + 1;
ticks = 0;
if(minute > 59)
{
hour = hour + 1;
minute = 0;
if(hour > 23)
{
hour = 0;
}
}
}
[lbl_timer setText:[NSString stringWithFormat:@"%02d:%02d:%02d",hour,minute,ticks]];
}
我的计时器使用Base SDK iOS 4.2正常更新,但在iOS 5上无效。 可能有什么不对?
答案 0 :(得分:0)
这可能不是你的问题,但选择器不正确,来自Apple文档:
选择器必须具有以下签名:
- (void)timerFireMethod:(NSTimer*)theTimer
所以你的NSTimer调用应该是(注意尾随“:”
myticker = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(ShowActicity:) userInfo:nil repeats:YES];
并且目标方法具有签名:
- (void)ShowActicity:(NSTimer*)theTimer
注意,使用初始小写字母命名方法是Objective-C约定,类具有前导大写字符。
答案 1 :(得分:0)
在4.3项目中,main.m替换为ios5 main.m文件。在appdelegate中更改
@interface SimpleTimerAppAppDelegate : NSObject
与
@interface SimpleTimerAppAppDelegate : UIResponder