iphone - 如果 NSDictionary 适用于成对值,那么什么适用于三重值?

标签 iphone objective-c nsarray nsdictionary

NSDictionary 适用于键值对,当您具有三个值时,哪种数据结构最适合?最好为这 3 个值创建一个类,然后让数组中的每个对象都包含该类的实例吗?

具体来说:这个数据结构,姑且称之为Person吧,我设想有三个值: (NSString)name, (int)age, (BOOL)isAlive

这些将保存在数组(?)中。重要的是既能使用名称作为键,又能用从零开始的数字引用整个 block 。

最佳答案

如果您有一个键和两个值,您可能会为这两个值创建一个类并仍然使用字典。

如果您有两个键和一个值,您可能会使用嵌套字典 - 即键是第一个键而值是另一个字典的字典。嵌套字典的键是第二个键,值是您的实际值。

预计到达时间:

现在您已经澄清了您的问题 - 如果您需要通过键或整数索引访问您的集合,您仍然可以使用字典。

要通过键获取项目,您可以这样做:

[myDict objectForKey:@"joe"];

要通过索引获取项目,您可以使用 allKeys 数组:

[myDict objectForKey:[[myDict allKeys] objectAtIndex:1]];

如果按索引获取人物的唯一目的是循环遍历整个集合,您最好考虑使用 keyEnumerator 方法来枚举循环中的键并使用这些键查找值。

关于iphone - 如果 NSDictionary 适用于成对值,那么什么适用于三重值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1017564/

相关文章:

ios - 从 Swift 框架访问委托(delegate)协议(protocol)到 Objective C

ios - 将字典传递给两个数组

关于枚举的 iOS 警告

iphone - iOS 在命令 Quartz 2D CGContext 上绘图

iphone - 是否有像 glFont 这样方便的 OpenGL-ES 2 字体库?

objective-c - NSURL 不带 %

ios - mylocationButton 为什么不更新我的位置?

iphone - NSPredicate 子查询语法

iphone - 在iPhone/iPad Objective c中使用自定义值设置UiWebView的minimumZoomScale和maximumZoomScale

iphone - UILocalNotification和iOS 4.2