类属性vs NSArray / NSDictionary

时间:2010-04-30 10:33:17

标签: iphone objective-c data-structures

我想要一个自定义类对象来保存数据,并且不知何故感觉创建大约80个属性并不是最好的方法。

大多数属性都是bool值,所以我正在考虑创建Arrays(键/值)或(可能更好)附加到用于保存数据的对象的NSDictionary。这是否有意义或者我应该继续使用这些属性吗?

额外:不同的方法是否有一般的利弊?我需要搜索哪些关键字/概念才能找到关于某种常见问题的讨论?

提前致谢

3 个答案:

答案 0 :(得分:3)

如果您期望某些行为,则应该使用类来创建对象(在将来的程序中)。我的意思是,对象 - 不仅是存储变量的东西。它还假设某种活动(称为行为)。属性不仅是设置某些值(作为对象的特征)的方式,而且是影响此行为的方式(您可以添加额外的代码部分,除了保存数据 - 一些检查或smth.else)。

如果你只需要构造来存储数据 - 它不仅仅是更好,将它们存储为数组或字典是更合乎逻辑的步骤。

大多数情况下字典更好,因为您可以通过键名访问存储的值。而且您的代码将更容易理解。但是数组应该(我不确切地知道,只是假设)访问速度更快(在其他字符串中找到字符串键比在递增数字序列中找到索引更难)。

答案 1 :(得分:2)

NSArray将基础对象(基础NS - 在NSNumberNSString等类型对象 - 存储在索引容器中。 NSArray没有键值对。您可以使用NSDictionary在键值对中存储Foundation对象。

80,任何东西都很多。你能把这些分组成子集吗?这可能会使这个数据集的维护更容易管理。

答案 2 :(得分:1)

我同意你最好使用一个对象来保存这些值。它将使您的代码更清晰,阅读/理解。我会使用NSDictionary而不是数组,因为您可以按名称访问每个布尔值。数组意味着您必须通过索引访问元素,使代码更难理解。