参考变量在其他类中说明

时间:2015-02-06 17:18:48

标签: ios

这是一个非常基本的问题。 在AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.stationInfos = [StationDB database].stationInfos;
    }
    return YES;
}

我希望能够在stationInfos内使用ViewController.m。最常规的方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以在.h中设置变量而不是.m。从那里,在ViewController.m中你应该导入AppDelegate.h。

然后,当你想要变量do:

AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
variableType *stationInfos = appDelegate.stationInfos;

答案 1 :(得分:1)

我会说,将这些数据存储在AppDelegate(.m或.h文件)中通常不赞成。

如果需要从多个位置访问数据,则通常建议使用Singleton对象。单例是一种面向对象的概念,其中只维护一个对象实例,以允许从多个位置访问同一数据源。

或者,如果[StationDB数据库] .stationInfos已经是单例(我不熟悉该对象),那么您可以在任何需要的地方访问它。没有任何内容表明您需要在.h或.m文件中定义它 - 您也可以在需要它的方法中定义它。

一般准则可能是:

  • 在.h>中定义>如果有限的其他对象可能需要访问它。
  • 在.m>中定义>如果只有那个班级需要访问它。
  • 以特定方法定义>>如果只有那种方法需要访问它。
  • 定义为单身>>如果许多对象需要访问它。
  • Don&#t> >>在AppDelegate中定义它。最好将逻辑放在适当的模型,视图或控制器类文件中。