我已經在視圖控制器中編寫了協議,並在AppDelegate中實現它,並且當我從視圖控制器調用委託函數時,不調用委託函數。下面是我的代碼 -在AppDelegate中未調用委託函數
在課堂AuthenticationViewController -
@class AuthenticationViewController;
@protocol ApplicationTiomeoutDelegate <NSObject>
-(void) addObserverForTimeout;
@end
而且使用委託調用這個函數 -
[self.appTimeoutDelegate addObserverForApplicationTimeout];
而在AppDelegate中,我已經實現了這個協議是這樣 -
@interface AppDelegate() <ApplicationTiomeoutDelegate>
@end
然後設置代表自我 -
AuthenticationViewController *timeoutDelegate = [[AuthenticationViewController alloc] init];
[timeoutDelegate setAppTimeoutDelegate:self];
並實現了委託功能,以及在AppDelegate中,這是從來沒有以某種方式被稱爲 -
-(void) addObserverForApplicationTimeout{
// this function is never called
}
我不知道什麼是不正確的位置。
你有沒有加載的'timeoutDelegate'控制器在你的應用程序? –
我沒有得到你在問什麼? timeoutDelegate是一個實例,用於爲appTimeoutDelegate設置self,並在didFinishLaunchingWithOptions本身中調用它。 –
@Richa Srivastava:第一件事是第一件事。如果你真的想在應用程序委託中調用一個方法,爲什麼你甚至需要一個協議?應用程序委託是整個應用程序生命週期中所有VC都可用的單例實例。 2.分配後啓動VC你在做什麼?它如何被加載是你的根VC?我猜你可能會啓動一個不同的實例加載一個不同的實例。最後提供更多的代碼,以獲得準確的答案:) –