我有一个二维数组的字符串,我试图将数组传递到一个表但是我得到错误
由于未捕获的异常终止应用' NSInvalidArgumentException',原因:' - [__ NSArrayM isEqualToString:]:无法识别的选择器发送到实例0x17045d8b0'
我有3个表,其中两个相互依赖以填充表格。因此,假设用户选择表A中的项目,则应根据表A的输入填充表B.表A包含类别,表B包含所选类别的子类别。
对于类别i,我有一维数组,对于subCategories,我有一个2D数组。
我的问题是如何访问该2D数组,以便当用户单击类别表中的类别时,我可以将该indexPath.row值传递给下一个表,该表是具有2D数组的子类别表。所以我得到了相关的子类别。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (tableView == _queryTypeTableView) {
_contentArray = [_queryTypeCv mutableCopy];
}
else if (tableView == _categoriesTableView){
_contentArray = [_categoryCv mutableCopy];
}
else if (tableView == _subCategoriesTableView){
_contentArray = [_subcategoryCv mutableCopy];
}
return [self.contentArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
if ([tableView isEqual:_queryTypeTableView]) {
cell.textLabel.text = [self.queryTypeCv objectAtIndex:indexPath.row] ;
}
else if ([tableView isEqual:_categoriesTableView]){
cell.textLabel.text = [self.categoryCv objectAtIndex:indexPath.row] ;
_selectedCategoryIndex = (int)indexPath.row;
}
else if ([tableView isEqual:_subCategoriesTableView]){
cell.textLabel.text = [[self.subcategoryCv objectAtIndex:_selectedSubCategoryIndex] objectAtIndex:indexPath.row] ;
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if ([tableView isEqual:_queryTypeTableView]) {
UITableViewCell *cell = [_queryTypeTableView cellForRowAtIndexPath:indexPath];
[_queryTypeButton setTitle:cell.textLabel.text forState:UIControlStateNormal];
_queryTypeTableView.hidden = YES;
_categoriesButton.enabled = YES;
_categoriesButton.backgroundColor = [UIColor darkGrayColor];
NSLog(@"You selected 1------> %ld!",(long)indexPath.row);
}
else if ([tableView isEqual:_categoriesTableView]){
UITableViewCell *cell = [_categoriesTableView cellForRowAtIndexPath:indexPath];
[_categoriesButton setTitle:cell.textLabel.text forState:UIControlStateNormal];
_categoriesTableView.hidden = YES;
_subCategoriesButton.enabled = YES;
_subCategoriesButton.backgroundColor = [UIColor darkGrayColor];
NSLog(@"You selected 2------> %ld!",(long)indexPath.row);
_categorySelectedFlag = YES;
}
else if ([tableView isEqual:_subCategoriesTableView]){
UITableViewCell *cell = [_subCategoriesTableView cellForRowAtIndexPath:indexPath];
[_subCategoriesButton setTitle:cell.textLabel.text forState:UIControlStateNormal];
_subCategoriesTableView.hidden = YES;
_outcomeButton.enabled = YES;
_outcomeButton.backgroundColor = [UIColor darkGrayColor];
NSLog(@"You selected 3------> %ld!",(long)indexPath.row);
}
}
这行代码抛出了错误:
cell.textLabel.text = [[self.subcategoryCv objectAtIndex:_selectedSubCategoryIndex] objectAtIndex:indexPath.row] ;