Определить, из какого словаря произошел объект - PullRequest
1 голос
/ 23 февраля 2012

У меня есть файл PLIST, в котором хранится информация о проблеме.Вверху находится массив, а внутри этого массива есть словари.Внутри каждого словаря есть строка «Дата» с разными датами.Затем я отображаю значения даты в табличном представлении.

Я могу определить, какой текст ячейки UITableview нажал (и, следовательно, строку даты), но как мне получить доступ к другим значениям в тот же словарь? Если я знаю, что строка даты - 16 февраля 2012 г., как я могу получить "URL для загрузки"?Вот фотография моего PLIST:

enter image description here

Ответы [ 2 ]

5 голосов
/ 23 февраля 2012

Вы должны получить indexPath из ячейки, к которой подключен.IndexPath.row должен дать вам порядковый номер, который вы можете использовать, чтобы получить правильный словарь из вашего массива словарей.Если вы еще не храните этот массив, подумайте, если это приемлемый размер.

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

Лично я бы никогда не стал полагаться на то, что дата уникальна или отформатирована каким-либо конкретным способом.

2 голосов
/ 23 февраля 2012

Вы можете отсортировать ваш массив (Список проблем) по дате выпуска, прежде чем инициировать ваш 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"];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...