我有一个自定义的UIView的子类,当值(NSInteger)低于某个值时需要执行一个选择器。从我可以从文档中得知的信息,我需要设置一个观察对象来寻找这个变化。NSNotification是检测变化的正确选择吗?
NSInteger值存在于视图控制器中,并且UIView子类在同一视图控制器中作为子视图实现。
我想,如果像下面是在正确的轨道上:
-(void)createNotification:
[[NSNotificationCenter defaultCenter]
addObserver:self //since this is in the viewController, I'm thinking it's "self"
selector:@selector(genCountLow:)
name:@"ReviewGenCount"
object: nil ];
我用,我想补充的条件,该观察执行的操作挣扎。例如,如果条件是:
if(genCount < 3) {
///code statement
}
我希望我的观察者查找上述更改,然后执行后续操作。我会像这样将其添加到我的通知对象吗?
- (void)genCountLow:(NSNotification *)notification {
if (genCount < 3) {
[electricalSystemDiagramView depowerShedBuses];
}
}
因此,总结一下,为了更新genCount,我不需要实现一个NSNotification对象,因为我可以使用自定义setter方法来完成重新绘制显示。 – 2010-01-23 23:27:58
这是正确的。你实现的主要变化是view * controller *,而不是* view *,它决定了视图应该显示的内容。该视图仅基于标志更改其状态。由于视图控制器总是使用'self.view'对视图进行引用,因此不需要使用通知,只需直接在视图上设置属性即可。当没有直接连接时,通过ivars,网点或其他方式,当需要一个或多个对象对另一个对象中的更改作出反应时,通常会使用通知。 – 2010-01-24 03:15:28