我想根据用户输入向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;
为了清晰起见,已编辑
答案 0 :(得分:1)
我认为无论何时点击按钮,它都会重新初始化数组。尝试在其他地方初始化它。