insertObject: atIndex: - indeks 3 poza granicami pustej tablicy

Tworzę tablicę na podstawie klucza słownika:

factsBuiltArray = [NSMutableArray arrayWithCapacity: 6];
if ([statusDict count] == 10) {
    for (NSString *key in [statusDict allKeys]) {
        if ([key isEqualToString: @"currenciesAndConversions"]) {
            [factsBuiltArray insertObject:key atIndex: 0];
        }
        else if ([key isEqualToString: @"languageAndTranslations"]) {
            [factsBuiltArray insertObject:key atIndex: 1];
        }
        else if ([key isEqualToString: @"plugSize"]) {
            [factsBuiltArray insertObject:key atIndex: 2];
        }
        else  if ([key isEqualToString: @"timezone"]) {
            [factsBuiltArray insertObject:key atIndex: 3]; // crashes over here
        }
        else if ([key isEqualToString: @"population"]) {
            [factsBuiltArray insertObject:key atIndex: 4];
        }
        else if ([key isEqualToString: @"wikipedia"]) {
            [factsBuiltArray insertObject:key atIndex: 5];
        }
    }
}

Dziennik awarii to:

*** -[__NSArrayM insertObject:atIndex:]: index 3 beyond bounds for empty array

Dlaczego wstawianie obiektu do tablicy określonej na 6 pojemności powoduje awarię? Bardzo mylące!

questionAnswers(1)

yourAnswerToTheQuestion