Xcode-无法在NSTimer中更新UILabel

凯文·多玛斯

我有一个标签,希望通过用户离开该标签来完成特定任务的秒数来更新。我决定使用每秒钟滴答作响的NSTimer,并调用函数updateTime(),这将减少包含剩余秒数的属性,然后更新标签。但是,标签未更新。我没有错误,也没有输出。我尝试使用updateTime()中的标签进行的任何更改均不起作用:mylabel.text,mylabel.frame,mylabel.font等。尽管如此,在其他任何地方,我都可以正常地修改标签。这是我的代码:

// ViewController.h
@interface ViewController : UIViewController
{
    NSTimer* timer;
    int secs;

    UILabel* timerText;
}

@end

// ViewController.m
- (void)updateTime
{
    secs--;
    timerText = (UILabel*)[self.view viewWithTag:4]; // i have also tried putting this line in viewDidLoad. i also tried removing the property in the .h file and just doing UILabel* timerText = ....
    NSString* updatedTime = [NSString stringWithFormat:@"%d", secs];
    timerText.text = updatedTime;
}

- (IBAction)startButton_pressed:(id)sender {
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                         target:self
                                       selector:@selector(updateTime)
                                       userInfo:nil
                                        repeats:YES];
}

编辑:我现在收到“-[UIView setText:]:无法识别的选择器发送到实例”错误。NSLog(@"%@", timerText)输出“>”,因此它不为null。在这种情况下,我得到“-[UIView setText:]:无法识别的选择器发送到实例0x9767b60”这是怎么回事?我该怎么办?我在一个新的项目上测试了类似的代码,并且该代码有效,不知道这里发生了什么。我的项目中可能有两个视图控制器可能导致这种情况?

凯文·多玛斯

谢谢大家的答复。我通过创建第二个ViewController类并将所有初始化都放在其viewDidLoad中来修复它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新UILabel在xCode iOS8中重置我的视图

来自分类Dev

如何从Xcode中的AppDelegate.m文件更新UILabel的文本?

来自分类Dev

NSTimer错误(Swift:Xcode)

来自分类Dev

macos 10.14.4:无法更新xcode

来自分类Dev

UILabel在Xcode 6中重叠文本

来自分类Dev

在UILabel(xcode)中垂直对齐文本

来自分类Dev

更改Xcode中的UIlabel文本大小?

来自分类Dev

无法在Xcode中设置Lua

来自分类Dev

Appledoc无法在Xcode中运行

来自分类Dev

无法在Xcode中打开项目

来自分类Dev

无法在 Xcode 中编译 OpenCV

来自分类Dev

Xcode无法更新到6.2版

来自分类Dev

如何更新Xcode beta?

来自分类Dev

更新 Xcode Swift

来自分类Dev

Xcode 12和SwiftUI:无法在此文件中预览-无法更新预览

来自分类Dev

xcode“无法打开文件”

来自分类Dev

无法创建Xcode项目

来自分类Dev

无法找到Xcode项目

来自分类Dev

Xcode 6.0.1无法启动

来自分类Dev

Xcode无法构建应用

来自分类Dev

Xcode无法建立

来自分类Dev

无法从appstore下载xcode?

来自分类Dev

Xcode核心数据显示UILabel中的所有实体

来自分类Dev

UILabel中的换行符(Xcode 7 Swift)

来自分类Dev

Swift,Xcode 6.4中的可重用UILabel样式

来自分类Dev

Xcode 中的 Swift Playground - TapGestureRecognizer 到 UILabel 不起作用

来自分类Dev

Xcode NSTimer错误:无法识别的选择器发送给类

来自分类Dev

Xcode:如何更改Xcode 5中的图标?

来自分类Dev

在App Store中找不到Xcode更新