Ich habe ein kleines Fundament Werkzeugtest (Objective-C), die mit denen ich spielen, und ich habe ein paar Fragen ...Hinzufügen von String-Objekten zu NSMutableArray?
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int planetLoop;
NSString *tempString;
NSMutableArray *planetArray = [[NSMutableArray alloc] init];
NSLog(@"STRING ARRAY ... Start");
for(planetLoop=0; planetLoop<10; planetLoop++) {
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
NSLog(@"Planet_%03d", planetLoop+1);
[planetArray addObject:tempString];
}
[planetArray release];
[pool drain];
return 0;
}
Zuerst in der Regel löse ich ein Objekt, nachdem es zu einem Array hinzufügen, aber Habe ich recht, wenn ich denke, dass das, was ich gerade habe, richtig ist, weil "tempString" ein String-Literal ist und als solches nicht zugewiesen oder freigegeben werden muss?
Zweitens, wenn ich dies (vor der Ausführung) ich bekomme die folgenden eror "nicht in der Lage, unbekannter Ladebefehl 0x80000022 zu lesen", wenn dies ein Problem mit meinem Code? von der Suche auf Google sieht es aus wie es könnte ein Fehler in xCode 3.1.2 sein, hat jemand irgendwelche Ideen?
schließlich alles, was ich tue, falsch ist, ist die Idee, ein Array mit 10 string "Planet_001" bis hin zu "Planet_010"
EDIT zu füllen: Ah, ich sehe, das ist wegen der "= [NSString" Bit
dh// Autoreleased object
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
// String literal
tempString = @"Planet_";
vielen dank, sehr geschätzt -gary-
Er gibt den Pool frei: [Pool Drain] –
Danke Jungs, ich sehe, was gerade passiert, kleine Bearbeitung oben zu erklären ... – fuzzygoat
@Chris du hast Recht. Mir war nicht bewusst, dass 'drain' eine' release' macht. –