如何使用对象:
问题描述:
这里是我的方法,我的ViewControllerA
工具为NSNotification
系统的一部分:如何使用对象:
- (NSInteger)updateTortoiseLevel:(NSNotification*)notification {
_updateValue = 0;
if ([notification.name isEqualToString:@"gameToTortoise"]) {
NSNumber* update = [notification.userInfo objectForKey:@"gameToTortoise"];
updateValue = [update integerValue];
} else {
// do other things
}
return _updateValue;
}
首先,我甚至不知道我是否可以从任何回报这种类型的方法,所以让我知道,如果我不能。
这里是我所追求的:我使用的通知系统
- (void)viewWillAppear:(BOOL)animated {
if (_update == 1) {
[self runCellUpdates];
}
}
当我弹出ViewControllerB
到A
。首先会发生什么?...是否在viewWillAppear:
之前发送通知?如果没有,我怎么能在viewWillAppear:
里面使用updateTortoiseLevel:
?
不要提“使用委托设计模式”,因为我已经考虑过了,但它不适用于我目前的设计(至少95%肯定)。干杯
答
首先,我甚至不知道我是否可以从这种类型的方法返回任何东西,所以让我知道如果我不能。
好的:你不行。想想看。谁在这里给你打电话?这是运行时间,提供通知。所以没有人会给你返回。运行时不会等待听到您是否有回复的价值,即使您已经这样做了,您认为运行时会如何处理它?在这种情况下返回值的概念是没有意义的。
我该如何使用updateTortoiseLevel:在viewWillAppear中:如果根本?
这个问题似乎没有意义,但无论如何我的回答是:你为什么要?你大概会得到updateTortoiseLevel
讯息与通知和NSNumber打包在里面,所以你为什么不做任何你想要做的事情当然有里面updateTortoiseLevel
?
够公平的,这就是我的想法。所以我可以在'viewWillAppear:'中使用传入的'NSNumber'作为条件检查吗?或者这也是一种死胡同的情况? –
@AnthonyShintoluggenprog我不明白这个问题。在'viewWillAppear:'中,从哪个意义上来说有一个“传入的NSNumber”?如果发布通知(并且您已注册接收它,大概是以调用'updateTortoiseLevel'的方式进行注册的),则该号码是传入的。同样,'viewWillAppear:'是运行时在自己有意义的时刻调用的东西 - 在这种情况下,因为您的视图正在出现。 – matt
看到我修改后的答案,因为我开始能够以朦胧的方式猜出你在哪里可能会认为你要这样做...... – matt