Не удается удалить ячейку после удаления словаря в двумерном массиве - PullRequest
1 голос
/ 10 ноября 2011

Я пишу небольшое приложение. Какой фильтр и отсортировать таблицу, как в списке контактов iphone. Однако мое мнение немного отличается тем, что у пользователя есть возможность выбрать фильтр из A-> Z или из Z-> A или вообще не использовать фильтр (который удалит заголовок раздела)

Логика заключается в том, что я загружаю данные из всех файловых списков, и в них есть словарь, и каждый словарь имеет 3 строковых объекта.

Я создаю массив с именем arrayData и помещаю туда все элементы. Затем я вызываю функцию фильтра:

-(NSMutableArray *)filterArray
{

    NSMutableArray *filterArr = [[NSMutableArray alloc] init];
    NSMutableArray *tempArray = [[NSMutableArray alloc] init];


    [filterArr addObject:tempArray];
    [tempArray release];

    for (NSDictionary *item in arrayData) {
        if ([tempArray count]==0)
        {
            [tempArray addObject:item];
        }
        else
        {
            NSDictionary *anItem = [tempArray objectAtIndex:0];
            NSString *first = [[anItem objectForKey:@"url"] substringToIndex:1];
            NSString *last = [[item objectForKey:@"url"] substringToIndex:1];

            if ( [first isEqualToString:last]) 
            {
                [tempArray addObject:item];
            } else
            {
                tempArray = [[NSMutableArray alloc] init];
                [tempArray addObject:item];
                [filterArr addObject:tempArray];
                [tempArray release];
            }
        }
    }
    return filterArr;
}

и я помещаю его в отсортированный массив:

NSMutableArray *filterArr = [self filterArray];

sortedArray = [[NSMutableArray alloc] initWithArray:filterArr copyItems:YES];

поэтому в моей таблице я просто отображаю:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if([sortedArray count]>0){

        NSLog(@"number of section: %d", [sortedArray count]);
        return [sortedArray count];
    }
    return 0;

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    CustomCell *cell = (CustomCell *)[aTableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil)
    {
        [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = myOwnCell;
    }

    NSDictionary *dataItem = [[sortedArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];

    cell.urlName.text = [dataItem objectForKey:@"url"];
    cell.titleLabel.text = [dataItem objectForKey:@"title"];
    cell.urlName.font = [UIFont italicSystemFontOfSize:14.0];
    cell.imageIcon.image = [UIImage imageNamed:[dataItem objectForKey:@"image"]];

    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    // Configure the cell.
    return cell;
}
}

Теперь я хочу добавить функцию удаления, чтобы удалить выбранную ячейку. Однако я не помогаю мне удалить правильно. Это ничего не удаляет. Я не уверен, что сделал что-то не так с удалением или нет.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

{
     NSMutableDictionary *dataItem = [[sortedArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    [sortedArray removeObject:dataItem ];

}

Пожалуйста, помогите мне много говорить, если я скучаю или делаю что-то не так. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...