Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在视图中使用从NSNotification接收的对象将出现:_Objective C_Uiviewcontroller_Nsnotificationcenter_Nsnotification_Viewwillappear - Fatal编程技术网

Objective c 如何在视图中使用从NSNotification接收的对象将出现:

Objective c 如何在视图中使用从NSNotification接收的对象将出现:,objective-c,uiviewcontroller,nsnotificationcenter,nsnotification,viewwillappear,Objective C,Uiviewcontroller,Nsnotificationcenter,Nsnotification,Viewwillappear,以下是我的ViewControllerA作为NSNotification系统的一部分实现的方法: - (NSInteger)updateTortoiseLevel:(NSNotification*)notification { _updateValue = 0; if ([notification.name isEqualToString:@"gameToTortoise"]) { NSNumber* update = [notification.userInfo

以下是我的
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
时,我正在使用通知系统。首先会发生什么?…是否在
视图出现之前发送通知:
?如果没有,我如何使用
updateTortoiseLevel:
视图中显示:
如果有的话

不要提及“改用委托设计模式”,因为我已经考虑过它,但它对我当前的设计不起作用(至少95%确定)。干杯

首先,我甚至不知道是否可以从这种类型的方法返回任何内容,所以如果不能,请告诉我

好吧,你不能。想想看。谁打电话给你?它是运行时,传递通知。因此,没有人可以为您返回值。运行时不会等着听您是否有一个值要返回作为响应,即使您有,您认为运行时会如何处理它?在这种情况下,返回值的概念是没有意义的

如何使用updateTortoiseLevel:inside ViewWillDisplay:if all


这个问题似乎毫无意义,但无论如何,我的回答是:你为什么要这么做?您可能会收到带有通知和NSNumber的
updateTortoiseLevel
消息,所以为什么不在
updateTortoiseLevel
中立即执行您想执行的任何响应操作呢?

我认为这很公平。因此,我是否能够使用传入的
NSNumber
进行条件签入
视图将出现:
?或者这也是一种死胡同类型的情况吗?@AnthonyShintoluggenprog我不明白这个问题。在
视图中将出现:
,在什么意义上存在“传入NSNumber”?在发布通知时(并且您已注册以接收通知,大概是以调用您的
updateTortoiseLevel
的方式),该号码将传入。再次强调,
viewwillappease:
是运行时在其自身有意义的时刻调用的东西-在本例中,因为您的视图正在出现。请看我修改后的答案,因为我开始能够以模糊的方式猜出您可能认为您将使用此…哇…根本没有想到这一点,我一直在努力调整一切以适应
viewdide:
。因此,如果我能理解多一点,如果我在
updateTortoiseLevel:
中捕获了
NSNumber
之后决定运行条件,那么该作业将在何时完成?当我弹回到
ViewControllerA
时,我会看到结果吗<代码>[自运行单元更新]将更新需要更新的单个单元格。我甚至需要调用
视图吗?此时将显示:
“该作业何时完成?”立即。“我回来时会看到结果吗”为什么不?如果VC A界面是在VC B显示时更新的,那么当您弹出显示VC A时,您将看到更新后的界面(只要您不做任何事情将其弄糟)。试试看会发生什么;你知道,宇宙不会爆炸可能发生的最坏情况是它不起作用,然后你可以想想为什么会这样。