使用UIAlertViewStyleTextInput将测试添加到NSMutableArray

时间:2014-04-29 09:47:43

标签: objective-c nsmutablearray

我想根据用户输入向NSMutableArray添加项目。我已经处理了用于处理不同位置的开关,以便用户输入信息(我使用UIAlertView来捕获用户的文本输入)。通过阅读我知道它每次只重置数组。我输入了一些新内容,只保存了最后一个,但我尝试了几种不同的格式,似乎无法将其添加到阵列中,而不是覆盖已经存储的内容。它。 以下是处理添加对象的语句

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
_tankFilterArray = [[NSMutableArray alloc] init];
_tankMovementArray = [[NSMutableArray alloc] init];
_tankLightsArray = [[NSMutableArray alloc] init];

NSString *newLightsString = [[NSString alloc] init];
NSString *newFiltrationString = [[NSString alloc] init];
NSString *newMovementString = [[NSString alloc] init];

switch (alertView.tag)
{
    case 0:
            newLightsString = [alertView textFieldAtIndex:0].text;
            NSLog(@"New Lighting Added: %@", newLightsString);
            [_tankLightsArray addObject:newLightsString];
            NSLog(@"Number of Lights Added: %lu", _tankLightsArray.count);
        //            [_tankLights reloadData];
        break;
    case 1:
        newFiltrationString = [alertView textFieldAtIndex:0].text;
        [_tankFilterArray addObject:newFiltrationString];
        NSLog(@"Number of Filtration Parts Added: %lu", _tankFilterArray.count);
        NSLog(@"New Filtration Added: %@", newFiltrationString);
        //            [_tankFiltration reloadData];
        break;
    case 2:
        newMovementString = [alertView textFieldAtIndex:0].text;
        [_tankMovementArray addObject:newMovementString];
        NSLog(@"Number of Filtration Parts Added: %lu", _tankMovementArray.count);
        NSLog(@"New Movement Added: %@", newMovementString);
        //            [_tankMovement reloadData];
    default:
        break;
}
}

它在头文件中声明的地方:

@property (strong, nonatomic) NSMutableArray *tankLightsArray;
@property (strong, nonatomic) NSMutableArray *tankFilterArray;
@property (strong, nonatomic) NSMutableArray *tankMovementArray;
为了清晰起见,

已编辑

1 个答案:

答案 0 :(得分:1)

我认为无论何时点击按钮,它都会重新初始化数组。尝试在其他地方初始化它。