objective-c - 全局变量作为单例的别名?

标签 objective-c cocoa oop naming-conventions singleton

我正在开发一个 Cocoa(触摸)应用程序,并且我必须在不同的 View 和 Controller 之间保留某些数据(例如自己的设备信息和位置列表)。

我想过将其作为实例变量存储在我的应用程序委托(delegate)中,但是寻址委托(delegate)非常麻烦(每次我想访问locations 数组,而且有很多地方),所以我想为委托(delegate)引入某种别名(la NSApp),但除了 NSApp 之外,我在其他 Cocoa 应用程序中还没有经常看到这种情况。

我还想更进一步,为我的单例类引入别名,所以为什么不将类重命名为 _State 并制作 [State sharedState] 呢?它的一个实例称为 State?

最佳答案

我可能会编写一个像 LocationManager 这样的类,它提供带有 [LocationManager sharedManager] 或类似的单例。通过委托(delegate)调用会破坏封装(并且您要通过 3 个对象调用才能到达那里)。即使 NSApp 样式 #define 也无法解决此问题。

关于objective-c - 全局变量作为单例的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/790014/

相关文章:

xcode - NSToolbar特殊区域

objective-c - 如何在 cocoa 中获得所有可能的屏幕分辨率?

java - 单一职责原则和服务/存储库设计

ios - 在 Objective-C(iOS) 的模态序列中实现 SDWebImage

ios - MPNowPlayingInfoCenter Remote 在 iOS 10 中响应不正确

ios - Objective-C:强制一个类成为其他类的子类

Java:接口(interface)中的 protected 方法

ios - 在目标 View Controller 上设置委托(delegate)

objective-c - 如何使用loadnibnamed推送viewController

c# - 关于 C# 和继承