ios - 为什么在 AppDelegate 级别设置变量在 iOS 中是一个糟糕的设计决策?

标签 ios objective-c cocoa appdelegate

我通过执行以下操作继承了一个在整个项目中共享变量的 iOS 应用程序:

[AppDelegate sharedDelegate].myVal = myVal;

这使得在 View Controller 之间共享数据变得容易,但感觉不对。不过,我无法正确地向以前的开发人员阐明和解释原因。

为什么以这种方式传递数据是一个糟糕的编程/设计决定?

最佳答案

AppDelegate 不适合存储通用变量的原因:

  1. 集中数据
  2. 使它成为一个全局可访问的变量
  3. 并非旨在处理任何类型的数据管理器
  4. 可以提供一个意大利面条代码

更多:

This article可能值得一读

我也喜欢this post

关于ios - 为什么在 AppDelegate 级别设置变量在 iOS 中是一个糟糕的设计决策?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439592/

相关文章:

ios - 面向协议(protocol)的编程不会带来继承主要解决的代码重复问题吗?

ios导航堆栈操作

ios - 将 UIViewController 放在 UIView 里面

objective-c - 当我的应用程序在后台运行时,如何将项目与云同步?

objective-c - 获取一个月的最后一天

iOS Firebase Crashlytics 缺少 dSYM

iphone - 删除行时崩溃 - 部分中的不一致未更新

Objective-C菜鸟 : How to define + call a method in main?

cocoa - 不同的 unicode 表示无法从 NSDictionary 获取

objective-c - cocoa:如何抑制 NSPopUpButton 自动选择/同步? NSArrayController 和 NSMenu 不起作用