iOS:向应用程序委托添加类方法?

时间:2011-08-25 14:45:17

标签: ios

如果我在应用程序委托中添加我需要的所有项目的类方法,那可以吗?

然后我在当前的UIViewController中导入委托,然后调用方法:[MyAppDelegate classMethod];

这是一个好方法吗?

感谢

4 个答案:

答案 0 :(得分:7)

我设置了APP_DELEGATE宏,定义为:

#define APP_DELEGATE ((AppDelegate *)[[UIApplication sharedApplication] delegate])

...所以当我需要使用它时,我只需编码:

[APP_DELEGATE someInstanceMethod];

所以是的,我使用实例方法(为简单起见)。只需在AppDelegate.h中定义此宏,并将其包含在您需要的任何位置。

答案 1 :(得分:2)

我认为它应该没问题,但我只会这样做a)有意义,而b)确实是该方法的唯一地方。我认为该功能是属于委托还是属于其他单例或共享类,我认为很长很难。

答案 2 :(得分:0)

我会说这是一种可接受的方法,但我不推荐它。这取决于你正在采取的方法。例如,如果您希望能够从应用程序的任何位置访问数据模型,最好使用单例,以便将模型与应用程序的其余部分完全分开。

答案 3 :(得分:0)

取决于您的应用需求或背景。

如果您要访问类变量,那么您可以选择要创建的类方法。

但你无法访问实例变量。

但我的选择是实例方法,它将对类变量和实例变量进行操作。

类方法和实例方法之间的区别是

班级方法

  • 操作类变量(它们无法访问实例变量)
  • 不要求对象实例化以应用
  • 有时可能是代码气味(有些人不熟悉OOP用作在OO环境中进行结构化编程的拐杖)

实例方法

  • 操作实例变量和类变量
  • 必须有一个实例化对象才能进行操作