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时,您将看到更新后的界面(只要您不做任何事情将其弄糟)。试试看会发生什么;你知道,宇宙不会爆炸可能发生的最坏情况是它不起作用,然后你可以想想为什么会这样。