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?

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top