NSArray使用valueForKey和valueAtIndex

时间:2012-11-06 11:30:56

标签: ios nsarray nsdictionary

长期倾听者等我已经浏览了很多关于NSDictionary和NSArray的帖子,但我无法做到这一点,我希望得到一些澄清。

我有一个NSArray masterArray ,其中包含键 name,filename,fileObject

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

目前我这样做(我已将所有内容都放在cellForRowAtIndexPath方法中用于此问题&#39)

- (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"];

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

1 个答案:

答案 0 :(得分:1)

您可以对iOS使用 OrderedDictionary 。这个第三方API的作用是它以索引格式将所有键/值对存储在NSDictionary中,即以NSArray的连续方式存储。 NSDictionary不以索引/有序方式存储值。这第三方词典呢。