-1

這裏是我的方法,我的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%肯定)。乾杯

回答

0

首先,我甚至不知道我是否可以從這種類型的方法返回任何東西,所以讓我知道如果我不能。

好的:你不行。想想看。誰在這裏給你打電話?這是運行時間,提供通知。所以沒有人會給你返回。運行時不會等待聽到您是否有回覆的價值,即使您已經這樣做了,您認爲運行時會如何處理它?在這種情況下返回值的概念是沒有意義的。

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

這個問題似乎沒有意義,但無論如何我的回答是:你爲什麼要?你大概會得到updateTortoiseLevel訊息與通知和NSNumber打包在裏面,所以你爲什麼不做任何你想要做的事情當然有裏面updateTortoiseLevel

+0

夠公平的,這就是我的想法。所以我可以在'viewWillAppear:'中使用傳入的'NSNumber'作爲條件檢查嗎?或者這也是一種死衚衕的情況? –

+0

@AnthonyShintoluggenprog我不明白這個問題。在'viewWillAppear:'中,從哪個意義上來說有一個「傳入的NSNumber」?如果發佈通知(並且您已註冊接收它,大概是以調用'updateTortoiseLevel'的方式進行註冊的),則該號碼是傳入的。同樣,'viewWillAppear:'是運行時在自己有意義的時刻調用的東西 - 在這種情況下,因爲您的視圖正在出現。 – matt

+0

看到我修改後的答案,因爲我開始能夠以朦朧的方式猜出你在哪裏可能會認爲你要這樣做...... – matt