确定对象来自哪个字典

时间:2012-02-23 19:31:15

标签: iphone objective-c ios ipad plist

我有一个存储问题信息的PLIST文件。顶部是一个数组,在该数组中有字典。在每个字典中是一个名为“Date”的字符串,具有不同的日期。然后,我在表格视图中显示日期值。

我可以确定点击的UITableview单元格的文本(以及日期字符串),但是如何访问相同字典中的其他值?如果我知道日期字符串是2012年2月16日,如何获取“下载URL”?这是我的PLIST的照片:

enter image description here

2 个答案:

答案 0 :(得分:5)

您应该从被点击的单元格中获取indexPath。 indexPath.row应该为您提供一个索引号,您可以使用该索引号从字典数组中获取正确的字典。如果你还没有保留这个数组,那么如果它是一个可管理的大小,请考虑这样做。

NSDictionary *selectedIssue = [myArrayOfDictionaries objectAtIndex:indexPath.row];
NSSTring *downloadURL = [selectedIssues valueForKey:@"Download URL"];

就个人而言,我永远不会依赖日期的独特或以任何特定方式格式化。

答案 1 :(得分:2)

您可以在使用该数据初始化TableViewController之前按发布日期对数组(问题列表)进行排序,而不是使用已轻触的单元格的NSIndexPath。

要使用词典对数组进行排序,请使用以下代码段:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
[issues sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];

之后你可以像这样使用indexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *url = [[issues objectAtIndex:indexPath.row] valueForKey:@"download_url"];
}