gpt4 book ai didi

ios - 导入 AppDelegate

转载 作者:IT王子 更新时间:2023-10-29 08:11:00 24 4
gpt4 key购买 nike

我经常在我的 AppDelegate 中初始化我的模型类变量,这样它们就可以被不同的 ViewControllers 使用,而无需跨类文件传递它们的实例。但是,每次我将 AppDelegate 导入 .m 文件以访问这些变量的数据时,我都觉得自己做错了什么。

这是访问这些变量的正确方法还是我应该做一些不同的事情?

编辑:我的问题不是如何访问变量。我目前使用这行代码来获取我的 appDelegate 实例:

id appDelegate = [[UIApplication sharedApplication] delegate];

从概念上讲,我想知道这是否是与应用程序的模型类交互的公认方式。在我看来,应用程序的 AppDelegate 似乎在整体上管理应用程序。因此,将此类导入到应用程序类链下游的其他类中似乎违反直觉。

最佳答案

Is this the the correct way for accessing these variables or should I be doing something differently?

你会发现不同的人对此有不同的看法。我喜欢的风格是让应用程序委托(delegate)将必要的信息传递给第一个 View Controller ,然后让该 View Controller 将其传递给它创建的任何 View Controller ,依此类推。这样做的主要原因是它可以防止 subview Controller 依赖于他们不了解的事情。

例如,如果您有一些详细信息编辑器,您希望能够准确地向该编辑器传递其工作所需的内容。如果你给它那个信息,编辑器是完全灵活的——它会编辑你给它的任何信息。如果编辑器知道它应该从某个外部对象(如应用委托(delegate))获取数据,那么它就会失去一定程度的灵 active ——它只能从它知道的对象中获取数据。

因此,可以在应用委托(delegate)中设置数据模型。但是,当谈到提供对模型的访问时,请思考:告诉,不要问。也就是说,让应用程序委托(delegate)告诉第一个 View Controller 要使用什么模型对象,并让该 Controller 告诉下一个,依此类推。如果你必须,你必须知道要问,这就是依赖关系开始朝着错误的方向前进的地方。

every time I import AppDelegate into a .m file to access these variable's data I feel like I'm doing some wrong.

相信直觉。想想为什么感觉不对。

关于ios - 导入 AppDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com