【发布时间】:2012-03-15 02:08:59
【问题描述】:
我已经成功地创建了一个NSDictionary 子类,一个旨在保存一组线索和答案的单例。我看到了一些奇怪的行为,我追溯到这样一个事实,即子类化 NSDictionary 实际上会导致 NSCFDictionary,所以我计划使用的 NSDictionary 方法除非我编写它们否则不起作用。我在另外两个 SO 问题中发现了一些有用的东西:here 和 here。我看到可能有一些解决方法,但它们也有问题。
为了测试目的,我对一些示例线索和答案进行了硬编码,目的是稍后转向某种核心数据方法。我很确定继续我目前的方法将需要大量的测试工作。这些是我正在考虑的选项;有什么建议吗?
- 放弃临时字典单例方法并将其替换为几个或多或少模仿字典以用于测试目的的数组?
- 即使我不打算变异也切换到
NSMutableDictionary?可变版本看起来可能更容易子类化,但我不确定。 - 转到某种全局常量数组并跳过单例方法进行测试(我希望这些术语是正确的)。
- 编写/覆盖所需的方法?
- 咬紧牙关,找出应用程序的核心数据部分?
- 还有别的吗?
【问题讨论】:
-
您真正想要完成什么?这个单例的目的是什么?出于对 Apple 一切事物的热爱,您为什么要尝试继承 NSDictionary?
-
目的在第一句。字典曾经并且确实包含一系列线索和一系列答案。为什么?好吧,我边走边学,坦率地说,我仍然没有看到任何你不应该这样做的真正线索:建议x 不要这样做在帮助文件中。
-
是的,我明白了,但你为什么认为 NSDictionary 本身不足以完成这项任务?关于子类化的建议,请参阅NSDictionary reference page 中的“子类化说明”部分。
-
哎呀...在完成我的作业后提出了一个经过深思熟虑的问题。
-
同意没有(好的)理由 a) 子类
NSDictionary或 b) 使其成为单例。作曲是通往这里的道路。即使是指向字典的全局指针也会更好。此外,子类化NSMutableDictionary并不比NSDictionary容易。其实我觉得还有更多个需要的方法。
标签: objective-c collections singleton nsdictionary subclassing