我有一个带有多个 Controller 的 iOS 应用程序,每个 Controller 都有自己的 xib 文件。
如何设置一个范围跨越所有 Controller 的全局变量?我是否应该每次都使用 NSUserDefaults
并为每个 View 检索数据?
最佳答案
一般来说,您要避免使用全局变量。如果您需要访问必须共享的数据,有两种常用方法。
将值放入您的 AppDelegate。
如果您只有一个或两个共享值,AppDelegate 是一种放置共享内容的简单方法。
可以从您的 Controller 访问 AppDelegate:
FooApp* appDelegate = (FooApp*)[[UIApplication sharedApplication] delegate];
FooApp
是您的应用程序类的名称。
创建一个单例类。
用大量共享值污染您的 AppDelegate 并不理想,和/或如果您希望这些值在 session 之间持续存在,请创建一个 Singleton由 NSUserDefaults
支持的类
是跨实例共享值的另一种方式。
关于objective-c - iOS开发中如何保存全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960982/