2

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

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

我希望能够更新 userInfo 但没有设置器。如果不为该类创建另一个 ivar,有没有办法在计时器中更新此信息?

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

谢谢-GW

4

2 回答 2

3

创建一个可变类,userInfo例如. NSMutableDictionary这将允许您修改字典内容。

于 2013-09-25T05:29:56.427 回答
1

如果没有看到您的其余代码,很难建议替代 ivar。但是,如果您班级中的 ivars 数量变得荒谬,这表明存在更普遍的问题 - 您的班级正在做太多事情!

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

于 2013-09-25T05:29:24.140 回答