如何限制用户不能 select 超过三个 TableView 单元格的复选框

How can I restrict user from not to select more than three checkbox of cell of TableView

我正在 tableView 上填充 10 个元素。我正在为 selecting 元素提供复选框,现在我想限制用户不能 select 超过 tableViewCell 的三个元素。我该怎么做?

`- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.data.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

cell.textLabel.text = [self.data objectAtIndex:indexPath.row];

return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
    cell.accessoryType = UITableViewCellAccessoryNone;
}else {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
}`
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];



    if (cell.accessoryType == UITableViewCellAccessoryNone)
    {

        if(count <3)
        {
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
            count = count + 1;
        }
        else
        {
            //alert
            NSLog(@"greater then 3");
        }


    }

    else
    {
        if(count>1)
        {
            cell.accessoryType = UITableViewCellAccessoryNone;
            count--;
        }
        else
        {
            //show alert
            NSLog(@"choose only 1");
        }

    }


    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

将 NSUInteger 变量声明为 CheckMarkcount。

@interface ViewController ()
{

  NSUInteger CheckMarkcount;

}

-(void)viewDidLoad{
    CheckMarkcount = 0;
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
   UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
   if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
       cell.accessoryType = UITableViewCellAccessoryNone;
       if(CheckMarkcount>0)
           CheckMarkcount--;
   }
   else {

      if(CheckMarkcount<3)
      {
         cell.accessoryType = UITableViewCellAccessoryCheckmark;
         CheckMarkcount++;
     }
   }
}