我有一个使用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
答案 0 :(得分:3)
使userInfo
成为可变类,例如NSMutableDictionary
。这将允许您修改字典内容。
答案 1 :(得分:1)
如果没有看到其他代码,很难建议替代ivar。但是,如果你班上的ivars数量变得荒谬,那就是一个更普遍问题的迹象 - 你的班级做了太多事情!
您应该构建代码,以便每个类都有一个不同的目的。这将显着减少每个类中的代码量,以及支持此代码所需的ivars数量。