Я пытаюсь отобразить переменную массива словарей в таблице Cell Style 2, которая используется приложением Contacts для отображения информации о контакте.
По какой-то причине стиль ячейки не отображается.
Переменная массива "arrayOfDictionaries_E", которая имеет следующую настройку.
/// Dictionary 1
NSArray *dataArray = [NSArray arrayWithObjects: @"Host", hostname, nil];
NSArray *keysArray = [NSArray arrayWithObjects: @"Label", @"Data", nil];
NSDictionary *host_dict = [[NSDictionary alloc] initWithObjects: dataArray forKeys: keysArray];
/// Dictionary 2
NSArray *dataArray2 = [NSArray arrayWithObjects: @"IP", hostIP, nil];
NSArray *keysArray2 = [NSArray arrayWithObjects: @"Label", @"Data", nil];
NSDictionary *ip_dict = [[NSDictionary alloc] initWithObjects: dataArray2 forKeys: keysArray2];
// Storage into Array of Dictionaries
NSArray *dictionariesArray = [[NSArray alloc] initWithObjects: host_dict, ip_dict, nil];
Я проверил, что массив содержит 2 словаря и оба словаря заполнены.
Так что у меня проблемы с:
Во-первых, я хочу, чтобы все ячейки использовали CellStyle2.
Во-вторых, я хочу, чтобы каждый словарь создавался в новом разделе. (например, приложение «Контакты», выборочно связывать группы элементов вместе)
Итак, вот код в моем файле реализации. Это UIViewController, использующий 2 протокола UITableView.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return [arrayOfDictionaries_E count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return 2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
}
NSDictionary * dict = [arrayOfDictionaries_E objectAtIndex:indexPath.row];
cell.textLabel.text = [dict objectForKey:@"label"];
cell.detailTextLabel.text = [dict objectForKey:@"Data"];
return cell;
}
Найти скриншот текущей таблицы. Здесь .
На кончике я связал выход tableView с владельцем файла и сделал так же для делегата и источника. Я изменил стиль на сгруппированный.
Однако, как видно на рисунке выше, когда я запускаю программу, ячейка не отображается в указанном правильном стиле, и я не знаю, как заставить каждую строку отображаться в отдельных разделах. -> Я думаю о переменной Array> Array> Dictionary, чтобы приступить к работе, однако я совершенно растерялся из-за того, как это можно реализовать.
Я все еще относительно новичок в Objective-c, поэтому вам, возможно, придется объяснить с помощью реальных реализаций кода, чтобы продемонстрировать, как я могу этого достичь.
Заранее спасибо, что нашли время ответить на этот вопрос.