Plist загружен в AppDelegate со следующей структурой:
Root ----> Словарь
Тестовый объект ----> Массив
Элемент 1 ----> Словарь
Заголовок заголовка ----> Строка ----> Раздел 1
Предметы ----> Массив
Элемент 1 ----> Словарь
Имя ----> Строка ----> Любое имя
Второе имя ----> Строка ----> Другое имя
CellIcon ----> String ----> Icon.gif
Просмотр ----> Номер ----> 2
Элемент 2 ----> Словарь
FirstName ----> String ----> Any Name 2
SecondName ----> String ----> Другое имя 2
CellIcon ----> String ----> Icon2.gif
Просмотр ----> Номер ----> 2
У меня есть TableViewController.m, который требует, чтобы я поместил вышеуказанную структуру plist в табличное представление, которое имеет 5 разделов. Проблема в том, что я не могу отобразить эти данные в описанных разделах моего табличного представления. Я запутался в написании изменяемого массива для выполнения этой задачи. Я уже использую массив для управления различными уровнями (представлениями) в моей таблице, но у меня возникают проблемы с добавлением изменяемого массива для управления разделами таблицы. У меня есть следующий код:
- (void)viewDidLoad {
[super viewDidLoad];
if (CurrentLevel == 0) {
NSArray *tempArray = [[NSArray alloc] init];
self.tableDataSource = tempArray;
[tempArray release];
TheAppDelegate *AppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
self.tableDataSource = [AppDelegate.data objectForKey:@"SampleArray"];
self.navigationItem.title = @"Main";
}
else
self.navigationItem.title = CurrentTitle;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [menuSections count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSDictionary *menuSection = [menuSections objectAtIndex:section];
return [menuSection objectForKey:@"HeaderTitle"];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSArray *menuItems = [[menuSections objectAtIndex:section] objectForKey:@"Items"];
return [menuItems count];
}