如果NSDictionary适用于配对值,那么对于三重值有什么好处?

can*_*boy 6 iphone objective-c nsdictionary nsarray

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

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

这些将保存在数组(?)中.能够同时使用名称作为键,并且从零开始引用带有数字的整个块是很重要的.

Eri*_*lje 9

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

如果你有两个键和一个值,你可能会使用一个嵌套字典 - 也就是一个字典,其中键是第一个键,值是另一个字典.嵌套字典的键是第二个键,值将是您的实际值.

ETA:

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

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

[myDict objectForKey:@"joe"];
Run Code Online (Sandbox Code Playgroud)

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

[myDict objectForKey:[[myDict allKeys] objectAtIndex:1]];
Run Code Online (Sandbox Code Playgroud)

如果通过索引获取人员的唯一目的是循环遍历整个集合,那么最好使用keyEnumerator方法枚举循环中的键并使用这些键来查找值.