Wie kann ich dynamisch eine NSArray füllen?
-
22-07-2019 - |
Frage
Ich habe eine for
Schleife. Innerhalb dieser Schleife möchte ich eine NSArray
mit einigen Objekten füllen. Aber ich sehe keine Methode, die ich das machen lassen würde. Ich weiß im voraus, wie viele Objekte gibt. Ich mag eine NSMutableArray
vermeiden, da einige Leute mir gesagt, das ist ein sehr großer Aufwand und leistungs Bremse im Vergleich zu NSArray
.
Ich habe so etwas wie dieses bekam:
NSArray *returnArray = [[NSArray alloc] init];
for (imageName in imageArray) {
UIImage *image = [UIImage imageNamed:imageName];
//Now, here I'd like to add that image to the array...
}
sah ich in der Dokumentation zu NSArray
, aber wie kann ich festlegen, wie viele Elemente in dort sein werden? Oder muss ich wirklich NSMutableArray
dafür verwenden?
Lösung
Ja, Sie brauchen eine NSMutableArray
zu verwenden:
int count = [imageArray count];
NSMutableArray *returnArray = [[NSMutableArray alloc] initWithCapacity:count];
for (imageName in imageArray) {
UIImage *image = [UIImage imageNamed:imageName];
[returnArray addObject: image];
...
}
EDIT - Deklaration festgelegt
Andere Tipps
Sie benötigen ein NSMutableArray
Sie könnten ein besiedeltes NSMutableArray
in eine NSArray
machen danach ( siehe hier für eine Diskussion ), aber sie werden nicht das Hinzufügen von Elementen zu einem regelmäßigen alten NSArray
jederzeit schnell.