Привет всем, я работаю с файлом JSON
для заполнения UITableView
.
Файл JSON
содержит два поля, которые мне нужно использовать:
- "Имя" - "регион"
Поля "регион" должны быть назначены для создания разделов UITableView
.
«имя» поля должны быть отсортированы в соответствии с разделом.
JSON-файл:
{
"Università" : [
{
"nome" : "Università degli Studi di Trento",
"regione" : "Trentino Alto Adige"
},
{
"nome" : "Università per Stranieri di Reggio Calabria \"Dante Alighieri\"",
"regione" : "Calabria"
},
{
"nome" : "Università degli Studi Suor Orsola Benincasa",
"regione" : "Campania"
},
{
"nome" : "Università degli Studi della Calabria ",
"regione" : "Calabria"
},
{
"nome" : "Università degli Studi di Napoli \"L'Orientale\"",
"regione" : "Campania"
}
]
}
Как видно из JSON
файл, каждый "имя" имеет "регион" , поэтому они должны быть отсортированы таким образом, например
(section) region 1
(cell) name with region 1
(cell) name with region 1
(cell) name with region 1
(section) region 2
(cell) name with region 2
(cell) name with region 2
(cell) name with region 2
Как можноЯ реализую это, чтобы заполнить мою UITableView
?
Это реализация, которую я сделал до сих пор
-(void)retrieveUniversityListFromJSONFile {
/* Interpelliamo il file JSON all'interno del progetto per ottenere i nomi di tutte le università attualmente presenti nel file */
// Nome del file JSON
NSString *JSONFileName = @"university";
NSString *path = [[NSBundle mainBundle] pathForResource:JSONFileName ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:path];
// Creazione di un dizionario che eredita informazioni dal file JSON
NSDictionary *JSONDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
// Inizializziamo l'array per prepararla ad accogliere i dati
_universityList = NSMutableArray.new;
for (NSDictionary *dict in JSONDict[@"Università"]) {
// Otteniamo i nomi delle università presenti nel file
NSString *universityName = dict[@"nome"];
// Otteniamo i nomi delle regioni italiane
NSString *regionName = dict[@"regione"];
// Aggiungiamo i risultati per le regioni all'array || _regionList ||
[_regionList addObject:regionName];
// Aggiungiamo i risultati all'array || _universityList||
[_universityList addObject:universityName];
}
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return _regionList.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return _universityList.count;
}