9
votes

Saisissez les derniers objets X d'un NsmutableRayRay

J'essaie de saisir les derniers numéros x d'objets dans un tableau et de le stocker dans un autre tableau.

Comme cela, il fonctionne: xxx

Non: xxx

et l'erreur suivante apparaît dans le journal:

2013-03-13 15: 00: 43.475 [38565: 303] < em> * - [Nsarray SubardWithRange:]: plage {83255, 83259} s'étend au-delà des limites [0. 83258]

Cependant, la gamme semble être à l'intérieur des limites, donc je suis Je ne sais pas pourquoi il donne cette erreur.


0 commentaires

3 Réponses :


2
votes

Le premier ne devrait pas travailler non plus. Les tableaux sont basés sur zéro, appelez donc la méthode compteur d'un tableau en retournera toujours une autre que le dernier index utilisé. Si vous modifiez votre code en xxx

Ça devrait fonctionner. Je ne sais pas pourquoi la première ligne fonctionne, cependant.


2 commentaires

Quand je fais que je reçois l'erreur suivante: 2013-03-13 15: 48: 27.112 [38764: 303] *** - [Nsarray SubardWithRange:]: plage {86699, 86702} s'étend au-delà des limites [0. 86702] La gamme semble viable, mais les retours sont toujours allant au-delà des limites.


Je l'ai compris. J'ai mal compris que la deuxième valeur sur la plage est une valeur incrémentielle de la première valeur, les œuvres suivantes: NsmutableArraRay * lastlines = [[Subord-carranger: NSMakerange (Loglines.count - 5, 4)] Mutablecopy];



0
votes

Si, par exemple, votre tableau a 10 éléments, comptage vous prend en position 10. En tant que tel, un tableau commence à partir de la position zéro et s'étend à la position 9, la position 10 sera de 1 au-delà.

Prenez-en un loin du nombre de compter pour obtenir la dernière position: xxx


0 commentaires

6
votes

Vous pouvez utiliser nsarray -subarraywithrange: méthode comme autres réponses suggérées, mais méfiez si la plage dépasse le nombre de matrices (par exemple, obtenez 10 la dernière ligne pendant que la matrice ne contient que 4 éléments), il augmentera une exception!

Pour éviter cela, utilisez simplement un si pour vérifier le nombre de matrices d'abord ... xxx


0 commentaires