1

长期听众等。我浏览了很多关于 NSDictionary 和 NSArray 的帖子,但我不太明白这一点,我希望得到一些澄清。

我有一个带有键名、文件名、文件对象的 NSArray masterArray

我想在 UITableViewCell 中的两个单独标签中显示名称和文件名。

目前我正在这样做(出于这个问题的目的,我将所有内容都放在了 cellForRowAtIndexPath 方法中)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell"];

NSArray *namesArray = [NSArray arrayWithArray:[masterArray valueForKey:@"name"]];
NSArray *filenamesArray = [NSArray arrayWithArray:[masterArray valueForKey:@"fileName"]];

NSString *name = [namesArray objectAtIndex:indexPath.row];
NSString *filename = [imageNameArray objectAtIndex:indexPath.row];

cell.nameLabel.text = name;
cell.filenameLabel.text = filename;

return cell;

}

我的问题是 - 有没有办法通过请求访问 NSArray(或 NSDictionary);

NSString *name = [masterArray valueAtIndex:indexPath.row valueForKey:@"name"];

您是否必须将其拆分为较小的数组/字典并分别访问这些值,还是我可以更优雅地执行此操作?

4

1 回答 1

1

您可以在 iOS 上使用OrderedDictionary。这个第三方 API 所做的是将所有键/值对以索引格式存储在 NSDictionary 中,即像 NSArray 一样以连续方式存储。NSDictionary 不以索引/有序方式存储值。这第 3 方字典可以。

于 2012-11-06T11:44:06.757 回答