Я пишу небольшое приложение. Какой фильтр и отсортировать таблицу, как в списке контактов 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 ];
}
Пожалуйста, помогите мне много говорить, если я скучаю или делаю что-то не так. Заранее спасибо