如何在iPhone中使用UISwitch打开/关闭在阵列中添加/删除对象

时间:2015-07-14 07:03:56

标签: ios objective-c iphone nsmutablearray uiswitch

我在UITableViewCell中添加了UISwitch但是当开关打开/关闭时如何在数组中添加或删除对象。

以下是 cellForRowAtIndexPath

中的代码
if (indexPath.section == 0)
{
    cell.textLabel.text = [menuArray1 objectAtIndex:indexPath.row];
    UISwitch *switchview = [[UISwitch alloc] initWithFrame:CGRectZero];

    if ([userSession.searchedArray count] > 0)
    {
        if ([userSession.searchedArray containsObject:cell.textLabel.text])
        {
            switchview.on = YES;
        }
    }
     switchview.tag = indexPath.row;
    [switchview addTarget:self action:@selector(switchToggle:) forControlEvents:UIControlEventValueChanged];
    cell.accessoryView = switchview;

}

//Switch action

-(void)switchToggle:(id)sender
{
   UISwitch *theSwitch = (UISwitch *)sender;

    NSLog(@"tag %d",theSwitch.tag);
    NSInteger i = [sender tag];

    if (theSwitch.isOn)
    {
         NSString *str = [menuArray1 objectAtIndex:i];
         [array addObject:str];
         userSession.searchedArray = array;
         NSLog(@"SearchArray %@",userSession.searchedArray);
    }
   else
    {
        [array removeObjectAtIndex:i];
        userSession.searchedArray = array;
    }

  }
当我尝试在UISwitch关闭时从阵列中删除对象时,

我的应用程序崩溃

我哪里错了?如果开启/关闭UISwitch,请建议我在数组中添加或删除对象的正确方法。

提前致谢

1 个答案:

答案 0 :(得分:0)

首先检查是否添加了对象。

在添加对象后记录数组。

    return val: 0
    return val:

试试这个。