objective-c - 是否可以更改 NSTimer 的用户信息?

标签 objective-c ios nstimer foundation

我有一个 NSTimer有一个 NSNumber在其userInfo

fireTimer = [NSTimer scheduledTimerWithTimeInterval:6.0 
                                             target:self 
                                           selector:@selector(fireTileAddingToColumn:) 
                                           userInfo:myNumber 
                                            repeats:YES];

NSTimer 之后已创建并运行了几次,我希望能够更改 myNumber 的值并让它反射(reflect)在 fireTileAddingToColumn:我没有任何运气让它发挥作用。有没有人有什么建议?

最佳答案

您始终可以将保存 userInfo 的对象传递给计时器:

@interface Holder
@property id data;
-(id) initWithData: (id) data;
@end

// implement it

Holder *holder = [[Holder alloc] initWithData:myNumber];
fireTimer = [NSTimer scheduledTimerWithTimeInterval:6.0 target:self
             selector:@selector(fireTileAddingToColumn:) holder
              repeats:YES];

[Holder setData: myNumber2];

并且数据变化将反射(reflect)在选择器中

关于objective-c - 是否可以更改 NSTimer 的用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8321035/

相关文章:

ios - Cordova iOS 6.1.1 白色启动画面

ios - NSTimer 选择器不重复

iphone - 如何从iphone IOS上的时间间隔解析和提取年,月,日等

objective-c - macOS 10.13 EXEC_BAD_ACCESS 由子类化 NSTableView 或 NSScrollView 引起

iphone - 如何确定 UINavigationController 中工具栏的高度?

ios - 带有图片和文字的UIButton不起作用

ios - 使用新的NSDate更新标签

iPhone - 当 [super init] 失败时使用 self = [super init]

ios - 获取包含参数的 Realm 对象

ios - Xcode 6 和约束 - 变灰的等宽选项