UITableView保存所选项目

时间:2011-07-05 08:05:22

标签: objective-c uitableview

我需要在NSMutableDictionary中为我的UITableView保存选定的项目以获取复选框。所以我做了以下几点:

  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 个答案:

答案 0 :(得分:2)

您可能想要更改

if ([selDict objectForKey:indexPath])

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

您现在正在做的是检查对象是否存在。它会在nil之后工作一次,但之后不会工作。