0

上下文我们正在开发一个可以使用 opencv 的 ios 应用程序,并且必须将我们更改viewcontrollers为 .mm

.mm 中的 opencv 相关函数不会执行涉及 ui 更改的代码。 GazeTracker是一个NSObject告诉用户凝视状态的,它工作正常

我们考虑过使用观察者,以便在viewController调用的 stateChanged 中使用选择器,该选择器将在状态gazeTracker更改时执行。

" stateChanged" 永远不会被调用。我们最初认为它只是gazeTracker,所以我们将它替换为“ self”(意思是viewController),但它仍然无法正常工作。我们对“ observer”的理解是,当对象中的值发生变化时,selector就会调用 。但是我们不知道“ object”中“ addObserver:selector:name:object”的目的。

the original code

- (void)viewDidLoad
{
[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:gazeTracker.state
selector:@selector(stateChanged) 
name:@"stateChanged" 
object:nil];

}
-(void)stateChanged{
NSLog(@"some value in gaze tracker has changed");
}

with "self"

 - (void)viewDidLoad
{
[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(stateChanged) 
name:@"stateChanged" 
object:nil];

}
-(void)stateChanged{
NSLog(@"some value in gaze tracker has changed");
}
4

0 回答 0