UITableView сохранить выбранные элементы - PullRequest
0 голосов
/ 05 июля 2011

Мне нужно сохранить выбранные элементы для моего UITableView в NSMutableDictionary для добавления флажков.Поэтому я делаю следующее:

  NSMutableDictionary * selDict;// - instance variable

  ...
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

      if ([selDict objectForKey:indexPath])
          [selDict setObject:[NSNumber numberWithBool:FALSE] forKey:indexPath];
      else
          [selDict setObject:[NSNumber numberWithBool:TRUE] forKey:indexPath];

      [[self tableView]reloadData];

  }

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

      static NSString *CellIdentifier = @"Cell";

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      if (cell == nil) {
          cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
          [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
      }

      if ([selDict objectForKey:indexPath])
          cell.accessoryType = UITableViewCellAccessoryCheckmark;
      else
          cell.accessoryType = UITableViewCellAccessoryNone;
      ...

      return cell;
   }

Но он только устанавливает проверенные элементы и больше не работает.

1 Ответ

2 голосов
/ 05 июля 2011

Возможно, вы захотите изменить

if ([selDict objectForKey:indexPath])

до

if ([[selDict objectForKey:indexPath] boolValue])

То, что вы сейчас делаете, проверяет, существует объект или нет. Он будет работать один раз, когда будет nil, но не после этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...