Выбор ячеек должен привести к строке соединенных (ID) строк, соответствующих выбранным ячейкам - PullRequest
0 голосов
/ 17 октября 2011

Я разрабатываю приложение на основе ГИС и организовал данные для поиска пользователей по различным категориям. Я упорядочил их в простом UITableView. Теперь у каждой категории есть соответствующая строка идентификатора (например: Больницы категорий: ID: f556682-de5tgh4dde-ff478). Я сделал два массива: один, содержащий категории, и другой, содержащий Строки идентификатора. Я думаю, что связь строки идентификатора с каждой категорией должна быть сделана через NSMutableDictionary, но не уверен, как это сделать и как создать строку, которая создается динамически каждый раз, когда пользователь выбирает определенное количество строк и результат объединения строк идентификаторов выбранных ячеек? Мне нужно, чтобы эту строку передавали на сервер, который в зависимости от строки создает на лету KML-файлы. (Причина, по которой мне это нужно.) Вот код, который я сделал до сих пор:

  NSDictionary *dictionary = [gisCategoryID objectAtIndex:indexPath.row];//gisCategoryID is an array that holds the ID strings
  NSLog(@"ID %@", [dictionary objectForKey: @"ID");
  NSLog(@"Name %@", [dictionary objectForKey: @"Name");

  NSMutableString *categString = [[[NSMutableString alloc] init] autorelease];
  for (NSMutableDictionary *categInfo in dictionary)
      [categString appendFormat: @"%@&", [categInfo objectForKey:@"ID"]];

Я сомневаюсь, что это правильный путь, потому что каждый раз, когда я выбираю строку, приложение вылетает.

Ответы [ 2 ]

1 голос
/ 18 октября 2011
// create a new mutable dictionary from two NSArrays which hold NSStrings: iDArray and categoryArray

// these arrays already exist and contain NSStrings and have the same number of items.

NSMutableDictionary * myDictionary = [[NSMutableDictionary alloc] initWithCapacity:25];
int i = 0;
for (i = 0; i < [iDArray count]; i++) {
[myDictionary addObject:[categoryArray objectAtIndex:i] forKey:[iDArray objectAtIndex:i]];
}
0 голосов
/ 17 октября 2011

Вы говорите, что хотите объединить строки, но вам нужно использовать словарь, который связывает ключевую строку с ними?В любом случае, выбранные ячейки возвращаются в виде массива с использованием indexPathsForSelectedRows, поэтому вы можете найти, какие из них.А чтобы динамически создать строку, вы можете сделать что-то вроде:

NSString * concatString = @"";
for (NSString* onestr in myArrayofString) {
  concatString = [NSString stringWithFormat:@"%@%@",concatString, onestr];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...