通过ios中的AppDelegate传递数据

时间:2011-03-16 18:50:49

标签: objective-c ios

在不止一次的情况下,我发现使用AppDelegate作为网桥将数据从一个viewController传递到另一个是有用的:

@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
    CGFloat aFloatValue;
}

这样我可以从任何控制器获得“aFloatValue”:

 MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

appDelegate.aFloatValue

但我不确定这是一个好方法......你怎么看?

1 个答案:

答案 0 :(得分:1)

我认为这更多地取决于您存储的数据及其所属的上下文。

例如,存储应用程序状态(例如用户是否登录)似乎是完全允许的。您甚至可能有一组属于应用程序的设置,这些设置不可由用户编辑,并存储在字典中,这似乎是保存字典的好地方。

但是,假设您有对象A和对象B直接依赖于对象C,那么您应该直接使用对象C获取该信息,而不是应用程序代理。