将数据传递给AppDelegate

我想知道如何将数据传回给AppDelegate。 假设我有这个计划

AppDelegate - > RootViewController -> FirstViewController -> SecondViewController. 

SecondViewController具有调用AppDelegate applicationWillTerminate方法时应保存的数据。 我知道我可以使用单例在应用程序中共享数据,但我不喜欢这种方法。 通知似乎不会在这种情况下工作。

你能推荐我什么?

这应该得到该委托。

 AppDelegate * delegate =(AppDelegate*) [UIApplication sharedApplication].delegate [delegate callSomeMethod:someData]; 

另一个build议给你。 在你的AppDelegate.h类中,你可以像下面这样创build一个类方法:

 + (AppDelegate *)getAppDelegate; 

然后在你的AppDelegate.m中

 + (AppDelegate *)getAppDelegate { return (AppDelegate *)[[UIApplication sharedApplication] delegate]; } 

现在你可以在任何你想要的地方访问这个委托(在导入了AppDelagate.h之后)。

 AppDelegate* sharedDelegate = [AppDelegate getAppDelegate]; 

一个更清洁的方式可能是创build一个类别并将代码放在那里。

现在我的问题是:为什么你需要保存委托内的数据? 也许你可以使用单例。 有关更多信息,请参阅单身人士 – 应用程序和顶级 。

希望能帮助到你。