0
- (void) setNeededValue:(valueType)newValue;
{
    neededValue = newValue;

    if( neededValue > threshold )
    {
        [[NSNotificationCenter defaultCenter] postNotificationName: @"setNeededValue" object: self];
    }
}

/////////////////

-(void)callfunction{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(setNeededValue) name:@"setNeededValue" object:nil];

NSLog(@"sam: %d,100);
}

setNeededValue 被调用并且调用通知存在问题?当它达到阈值条件时,它会调用函数 callfunction... :( 对此有点新?请帮帮我!!

提前致谢!:)

4

1 回答 1

0

问题可能是您将自己设置为错误位置的通知观察者。

您成为 callfunction 内通知的观察者(当达到阈值时会调用它)。

实例化对象或视图时,只应添加一次观察者。并在它被移除时被移除。

因此,将 addObserver 移动到您的 init 中(或者如果您在 viewDidLoad 方法中的视图控制器内)。

正如克里斯蒂安所指出的,这应该不是问题

我会替换: [[NSNotificationCenter defaultCenter] postNotificationName: @"setNeededValue" object: self]; with [[NSNotificationCenter defaultCenter] postNotificationName: @"setNeededValue" object: nil]; 然后它应该可以工作,因为通知中心检查从 postNotification 传递的对象并查看观察者,如果有匹配,它将被调用,否则不会。在您的情况下,您使用 object 发布 Notification self,但在 addObserver 您有 objectnil

于 2012-06-18T14:19:13.293 回答