我有一个存储问题信息的PLIST文件。顶部是一个数组,在该数组中有字典。在每个字典中是一个名为“Date”的字符串,具有不同的日期。然后,我在表格视图中显示日期值。
我可以确定点击的UITableview单元格的文本(以及日期字符串),但是如何访问相同字典中的其他值?如果我知道日期字符串是2012年2月16日,如何获取“下载URL”?这是我的PLIST的照片:
答案 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"];
}