Frage

Noobie-Frage..Was ist der beste Weg, um zu überprüfen, ob der Index eines NSArray oder NSMutableArray vorhanden ist?Ich suche überall erfolglos!!

Folgendes habe ich versucht:

if (sections = [arr objectAtIndex:4])
{
    /*.....*/
}

oder

sections = [arr objectAtIndex:4]
if (sections == nil)
{
    /*.....*/
}

aber beide geben einen „Out of Bounds“-Fehler aus, der es mir nicht erlaubt, fortzufahren

(Antworten Sie nicht mit einem Try-Catch, denn das ist für mich keine Lösung)

Dank im Voraus

War es hilfreich?

Lösung

generasacodicetagpre.

Andere Tipps

Wenn Sie einen Integer-Index haben (z. B. i), können Sie diesen Fehler im Allgemeinen verhindern, indem Sie die oben genannten Arrays nachprüfen, wie dieses

generasacodicetagpre.

Denken Sie daran, dass NSArray vorhanden ist fortlaufende Reihenfolge aus 0 bis N-1 Artikel

Du versuchst es access item was hat Grenzwert überschritten und ein array Ist nil dann würde der Compiler rauswerfen bound error.

BEARBEITEN :Die obige Antwort von @sch zeigt, wie wir überprüfen können, ob in NSArray ein erforderlicher bestellter Artikel vorhanden ist oder nicht.

Du kannst den ... benutzen MIN Der Operator kann auf diese Weise stillschweigend scheitern [array objectAtIndex:MIN(i, array.count-1)], um entweder das nächste oder das letzte Objekt im Array abzurufen.Kann nützlich sein, wenn Sie beispielsweise Zeichenfolgen verketten möchten:

NSArray *array = @[@"Some", @"random", @"array", @"of", @"strings", @"."];
NSString *concatenatedString = @"";
for (NSUInteger i=0; i<10; i++) {  //this would normally lead to crash
    NSString *nextString = [[array objectAtIndex:MIN(i, array.count-1)]stringByAppendingString:@" "];
    concatenatedString = [concatenatedString stringByAppendingString:nextString];
    }
NSLog(@"%@", concatenatedString);

Ergebnis:„Einige zufällige Zeichenfolgenanordnung....."

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top