gpt4 book ai didi

objective-c - 将带有参数的方法传递给NSTimer

转载 作者:行者123 更新时间:2023-12-01 19:17:26 24 4
gpt4 key购买 nike

我不知道如何使用带有NSTimer参数的方法。我正在使用的代码如下-想法是将标签发送到第一种方法,在该方法中将其变为红色,然后在第二秒钟后调用第二种方法,并将标签变为黑色。

-(void) highlightWord:(UILabel *)label
{
label.textColor = [UIColor colorWithRed:235 green:0 blue:0 alpha:1];
//[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(unhighlightWord:label) userInfo:nil repeats:NO];
}

- (void) unhighlightWord:(UILabel *)label {
label.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];

}

有了这样的代码,Xcode告诉我: Expected ":"之后的 @selector(unhighlightWord:label。如果我添加“:”,则在运行时会收到 unrecognized selector消息。

最佳答案

计时器方法的选择器接受一个参数,该参数就是计时器本身(您未在选择器中指定任何参数,它应该只是@selector(unhighlightWord :))。因此,您需要具有一个指向您的标签的ivar或属性,并在您的方法中使用它,而不是尝试将标签作为参数传递。

-(void) highlightWord:(UILabel *)label
{
label.textColor = [UIColor colorWithRed:235 green:0 blue:0 alpha:1];
self.myLabel = label; // myLabel is a property
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(unhighlightWord:) userInfo:nil repeats:NO];

}

- (void) unhighlightWord:(NSTimer *) aTimer {
self.myLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];

}

关于objective-c - 将带有参数的方法传递给NSTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com