NSTimer - 更新userInfo

时间:2013-09-25 05:22:02

标签: objective-c nstimer

我有一个使用NSTimer调用另一个的方法:

NSNumber *value = {NSNumber numberWithInt:5];
myTimer = [NSTimer scheduledTimerWithTimeInterval: 0.02
                                           target: self
                                         selector: @selector(configGroup:)
                                         userInfo: value
                                          repeats: YES];

我希望能够更新userInfo但是没有setter。没有为班级创建另一个ivar,有没有办法在计时器中更新此信息?

显而易见的简单方法是添加ivar,但我有一堆这样的方法,我的ivar列表有点荒谬。

由于 - GW

2 个答案:

答案 0 :(得分:3)

使userInfo成为可变类,例如NSMutableDictionary。这将允许您修改字典内容。

答案 1 :(得分:1)

如果没有看到其他代码,很难建议替代ivar。但是,如果你班上的ivars数量变得荒谬,那就是一个更普遍问题的迹象 - 你的班级做了太多事情!

您应该构建代码,以便每个类都有一个不同的目的。这将显着减少每个类中的代码量,以及支持此代码所需的ivars数量。