如何使用对象:

问题描述:

这里是我的方法,我的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]; 
    } 
} 

当我弹出ViewControllerBA。首先会发生什么?...是否在viewWillAppear:之前发送通知?如果没有,我怎么能在viewWillAppear:里面使用updateTortoiseLevel:

不要提“使用委托设计模式”,因为我已经考虑过了,但它不适用于我目前的设计(至少95%肯定)。干杯

首先,我甚至不知道我是否可以从这种类型的方法返回任何东西,所以让我知道如果我不能。

好的:你不行。想想看。谁在这里给你打电话?这是运行时间,提供通知。所以没有人会给你返回。运行时不会等待听到您是否有回复的价值,即使您已经这样做了,您认为运行时会如何处理它?在这种情况下返回值的概念是没有意义的。

我该如何使用updateTortoiseLevel:在viewWillAppear中:如果根本?

这个问题似乎没有意义,但无论如何我的回答是:你为什么要?你大概会得到updateTortoiseLevel讯息与通知和NSNumber打包在里面,所以你为什么不做任何你想要做的事情当然有里面updateTortoiseLevel

+0

够公平的,这就是我的想法。所以我可以在'viewWillAppear:'中使用传入的'NSNumber'作为条件检查吗?或者这也是一种死胡同的情况? –

+0

@AnthonyShintoluggenprog我不明白这个问题。在'viewWillAppear:'中,从哪个意义上来说有一个“传入的NSNumber”?如果发布通知(并且您已注册接收它,大概是以调用'updateTortoiseLevel'的方式进行注册的),则该号码是传入的。同样,'viewWillAppear:'是运行时在自己有意义的时刻调用的东西 - 在这种情况下,因为您的视图正在出现。 – matt

+0

看到我修改后的答案,因为我开始能够以朦胧的方式猜出你在哪里可能会认为你要这样做...... – matt