gpt4 book ai didi

objective-c - 将字符串传递给 NSTimer 的操作方法

转载 作者:行者123 更新时间:2023-12-03 17:51:30 25 4
gpt4 key购买 nike

我正在尝试使用addCloud:方法在选择器上使用数字参数,但我无法收到图像名称的正确输出。

正在加载图片资源:“cloud<__NSCFTimer: 0x170162400>.png”

- (void)level:(float)interval sprite:(NSString *)charSprite
{

if ([charSprite isEqualToString:@"1"]) {

[NSTimer scheduledTimerWithTimeInterval:k1 target:self selector:@selector(addCloud:) userInfo:charSprite repeats:YES];


}

}

- (void)addCloud:(NSString *)nnumber
{
NSString *nvalue = [NSString stringWithFormat:@"cloud%@.png",nnumber];
_cloud = [SKSpriteNode spriteNodeWithImageNamed:nvalue];
[_cloud setScale:0.4];

_cloud.position = CGPointMake(self.frame.size.width + _cloud.size.width/2, actualY);
[self addChild:_cloud];
}

最佳答案

计时器回调的签名应为-(void)addCloud:(NSTimer *)timer。计时器回调不会直接接收提供给 userInfo 参数的值;他们总是收到 NSTimer 引用。您可以向计时器询问其 userInfo 属性,然后可以将其转换为您要查找的 NSString:

NSString *spriteIndex = timer.userInfo;
NSString *spriteName = [NSString stringWithFormat:@"cloud%@.png", spriteIndex];

关于objective-c - 将字符串传递给 NSTimer 的操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410120/

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