NSArray ObjectAtIndex: 0 - ottieni il conteggio?
-
05-07-2019 - |
Domanda
Ho un NSArray che passo attraverso un metodo delegato:
- (void)didFinishParsing:(NSArray *)array {
[self.myArray addObjectsFromArray:array];
NSLog(@"%@", self.myArray);
[self.tableView reloadData];
}
C'è solo un oggetto nell'array
e vorrei che il conteggio delle righe di tableView fosse uguale alla quantità di oggetti nell'oggetto arrayAtIndex: 0
, ma non riesco a ottenere il conteggio. Ho provato:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[self.myArray objextAtIndex:0] count];
}
Come posso ottenere il numero di oggetti all'interno del primo (e unico) oggetto nel mio array?
Soluzione
Per contare l'array nell'indice 0 di self.myArray la sintassi è corretta. La tua variabile array
è impostata come pensi che sia?
La chiamata del metodo addObjectsFromArray:
aggiungerà il contenuto di array
alla fine di self.myArray
.
Quindi, in altre parole: [array objectAtIndex: 0]
diventerà [self.myArray lastObject:]
In caso di problemi con l'esecuzione di count:
su [self.myArray objectAtIndex: 0]
o [self.myArray lastObject]
quindi l'oggetto che stai cercando di contare potrebbe essere nil
, vuoto, non un NSArray / Set come ti aspetti che sia.
Altri suggerimenti
Se stai cercando di creare un array all'interno di un array, dovresti invece utilizzare
[self.myArray addObject: array];
Questo aggiungerà l'array al prossimo indice all'interno di self.myArray. Quello che stavi facendo in precedenza con
[self.myArray addObjectsFromArray:array];
stava aggiungendo il contenuto di array
in self.myArray
non aggiungendo array
stesso in self.myArray
.