tengo una prueba pequeña herramienta fundación (Objective-C) que estoy jugando con y tengo algunas preguntas ...¿Agregar objetos de cadena a 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;
}
En primer lugar, por lo general me suelte un objeto después de añadirlo a una matriz, pero ¿Estoy en lo cierto al pensar que lo que tengo actualmente es correcto porque "tempString" es un literal de cadena, y como tal no necesita ser asignado o liberado?
En segundo lugar, cuando ejecuto esto (antes de la ejecución) obtengo el siguiente error "no se puede leer el comando de carga desconocido 0x80000022" si esto es un problema con mi código? de buscar en google parece que podría ser un error en xCode 3.1.2, ¿alguien tiene alguna idea?
Finalmente algo que estoy haciendo mal, la idea es llenar una matriz con 10 cuerdas "Planet_001" a través de "Planet_010"
EDIT: Ah, ya veo, eso es debido a la "= [NSString" bits es decir
// Autoreleased object
tempString = [NSString stringWithFormat: @"Planet_%03d", planetLoop+1];
// String literal
tempString = @"Planet_";
muchas gracias, muy apreciados -gary-
Él libera el grupo: [desagüe de la piscina] –
Gracias chicos, veo lo que está sucediendo ahora, pequeña edición anterior para explicar ... – fuzzygoat
@Chris tienes razón. No sabía que 'drain' hace un 'lanzamiento'. –