Nslog imageame en iphone

Tengo una NSArray con imágenes. Los nombres de las imágenes son A, B, C, D. Necesito NSLog los nombres de estas imágenes de la matriz

 NSLog(@"Name == %@", [Array objectAtIndex:1]); 

¿Qué debo usar en lugar de esto?

Un UIImage no almacena su nombre de file, si desea realizar un seguimiento de los nombres de los files de los que se crearon, deberá almacenarlos también.

Hasta donde yo sé, no puedes get el nombre del file de image del object UIImage . Si desea hacer esto, puede almacenar el nombre junto con la image en un object NSDictionary :

 NSArray * imageNames = [NSArray arrayWithObjects:@"A.png", @"B.png", @"C.png", nil]; NSMutableArray * array = [NSMutableArray arrayWithCapacity:[imageNames count]]; for (NSString * imageName in imageNames) [array addObject:[NSDictionary dictionaryWithObjectsAndKeys: [UIImage imageNamed:imageName], @"image", imageName, @"name", nil]]; 

entonces puede iniciar session como:

 NSLog(@"name = %@", [[array objectAtIndex:1] valueForKey:@"name"]); 

si anula el método de "descripción" de su matriz con el nombre de sus imágenes concatenadas, podría funcionar bien.

NSLog funciona en este caso preguntando a cada object una cadena que se describe a sí misma, enviando el método de descripción a los objects. (Nota: si un object no anula el método de descripción, obtendrá la implementación de descripción henetworkingada de NSObject, que tiende a ser similar. Consulte UsingTheDescriptionMethod

Nota : el método de descripción solo debe usarse para fines de debugging.

Saludos.

Como lo sugiere wattson, no es posible. Para esto, debe tomar otra matriz en la que puede save el nombre de image. De lo contrario, puede tomar un NSMutableDictionary y save imageName como key y el object Array como su object, que puede leer más tarde.

No puedes. Si A, B, C, D son vars de instancia, son lo único que puedes controlar, como

 if ((UIImage*)[Array Objectatindex:1] == A) bla-bla-bla you know that it's "A" 

Una vez asignado, no se puede alcanzar el nombre de la image.

si desea NSLog el set de NSArray usa esto:

 NSArray *_array = // your array NSLog(@"array == %@", _array); 

ACTUALIZACIÓN: # 1

el de la manera utilizable sería el siguiente, en lugar de llenar el NSMutableArray con los objects UIImage solamente, debería agregar objects 'NSDictionary' al NSMutableArray con los siguientes contenidos como este:

 NSMutableArray *_array = [NSMutableArray array]; // you could put this part inside a loop if you like NSString *_imagePathWithName = @"..."; UIImage *_newImage = [UIImage imageNamed:_imagePathWithName]; // when you load it from you application bundle // or [UIImage imageWithContentsOfFile:_imagePathWithName]; // loading from other place NSDictionary *_imageDictionary = [NSDictionary dictionaryWithObjectsAndKeys:_newImage, @"keyForUIImage", _imagePathWithName, @"keyForFullPathAndName", nil]; [_array addObject:_imageDictionary]; 

y cuando quieras leer los nombres de tu matriz

 for (NSDisctionary *_dictionary in _array) { UIImage *_image = (UIImage *)[_dictionary valueForKey:@"keyForUIImage"]; NSString *_fullPathWithName = (NSString *)[_dictionary valueForKey:@"keyForFullPathAndName"]; // do whatever you'd like with the images and the path }