Я пытаюсь создать общий UITableView
в своем приложении для iPhone.
У меня есть UITableView
, который заполняет данные с помощью массива через цикл запроса SELECT.
Я добавляю данные в мой массив и заполняю массив в cellForRowAtIndexPath:
.
Я получаю заголовок раздела, используя этот массив, и используя метод сортировки, я помещаю заголовки разделов в Array1
.
Я бы хотел, чтобы titleForHeaderInSection:
работал, если в разделе 0 будет указано статическое имя заголовка, а в разделах 1 и более поздних будет универсальный, то есть имя заголовка будет получено из Array1
.
Я не уверен, как мне создать эту логику, поскольку приложение всегда выдает EXC_BAD_ACCESS
с кодом ниже.
Моя логика: я сохраняю счетчик массива в int
и проверяю, больше ли значение 0. Если это так, я добавляю заголовок раздела для objectAtIndex:0
, в противном случае я использую статический. Но когда счет достигает 2, для секции 2 и objectAtIndex:1
он ломается и выдает EXC_BAD_ACCESS.
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
int value = [[self Array1] count];
if(section == 0)
return @"Countries";
if (value > 0) {
if (section == value){
return [[self Array1] objectAtIndex:section - 1];
}
}
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
int count = [[self Array1] count];
return count + 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int value = [[self Array1] count];
if (section == 0) {
return [self.Array count];
}
if (value > 0) {
if (section == [[self Array1] count]) {
NSString *initialLetter = [[self Array1] objectAtIndex:section - 1];
// get the array of elements that begin with that letter
NSArray *elementsWithInitialLetter = [self elementsWithInitialLetter:initialLetter];
// return the count
return [elementsWithInitialLetter count];
}
}
}