Tratando de mostrar un set de imágenes, el código devuelve el iPhone a la pantalla de inicio

Aquí está el código del problema:

El código es para mostrar una matriz de imágenes a las que luego se puede desplazar.

- (void)viewDidLoad { [super viewDidLoad]; NSArray *photos = [[NSArray arrayWithObjects: [UIImage imageNamed:@"Event.png"], [UIImage imageNamed:@"Logo.png"], [UIImage imageNamed:@"default.png"], [UIImage imageNamed:@"LittleLogoImage.png"], nil] retain]; // TODO – fill with your photos // note that the view contains a UIScrollView in aScrollView int i=0; int width = 0; int height = 0; for ( NSString *image in photos ) { UIImage *image = [UIImage imageNamed:[photos objectAtIndex:i]]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.clipsToBounds = YES; imageView.frame = CGRectMake( imageView.frame.size.width * i++, 0, imageView.frame.size.width, imageView.frame.size.height); [aScrollView addSubview:imageView]; width = imageView.frame.size.width; height = imageView.frame.size.height; [imageView release]; } aScrollView.contentSize = CGSizeMake(width*i, height); aScrollView.delegate = self; } 

¿Algunas ideas?

[Sesión iniciada el 2011-05-07 22:46:47 +0100.] 2011-05-07 22: 46: 49.314 ALFA [1171: 207] load01 2011-05-07 22: 47: 13.749 ALFA [1171: 207 ] 2 2011-05-07 22: 47: 13.751 ALFA [1171: 207] dealloc01 2011-05-07 22: 47: 13.755 ALFA [1171: 207] load02 2011-05-07 22: 47: 19.791 ALFA [1171: 207] 4 2011-05-07 22: 47: 19.792 ALFA [1171: 207] dealloc02 2011-05-07 22: 47: 19.795 ALFA [1171: 207] – [UIImage length]: selector no reconocido enviado a la instancia 0x4b20f60 ​​2011- 05-07 22: 47: 19.797 ALFA [1171: 207] * Aplicación de terminación debido a la exception no detectada 'NSInvalidArgumentException', motivo: '- [Longitud UIImage]: selector no reconocido enviado a la instancia 0x4b20f60' * Pila de llamadas en el primer lanzamiento: (0 CoreFoundation
0x00dca5a9 exceptionPreprocess + 185 1 libobjc.A.dylib
0x00f1e313 objc_exception_throw + 44 2 CoreFoundation
0x00dcc0bb – [NSObject (NSObject) doesNotRecognizeSelector:] + 187 3
CoreFoundation
0x00d3b966 __ reenvío + 966 4
CoreFoundation
0x00d3b522 _CF_forwarding_prep_0 + 50 5 UIKit
0x003e3568 _UIImageAtPath + 36 6
ALFA
0x000037fd – [PhotosView viewDidLoad] + 597 7 UIKit
0x0036a089 – [Vista UIViewController] + 179 8 ALFA
0x00002af3 – [ALPHAViewController displayView:] + 500 9 ALPHA
0x00002707 – [ALPHAAppDelegate displayView:] + 60 10 ALPHA
0x00002cdd – [View2 viewPhotos:] + 99 11 UIKit
0x002ba4fd – [UIApplication sendAction: to: from: forEvent:] + 119 12 UIKit
0x0034a799 – [UIControl sendAction: to: forEvent:] + 67 13 UIKit
0x0034cc2b – [UIControl (Interno) _sendActionsForEvents: withEvent:] + 527 14 UIKit
0x0034b7d8 – [UIControl touchesEnded: withEvent:] + 458 15 UIKit
0x002deded – [UIWindow _sendTouchesForEvent:] + 567 16 UIKit
0x002bfc37 – [UIApplication sendEvent:] + 447 17 UIKit 0x002c4f2e _UIApplicationHandleEvent + 7576 18 GraphicsServices
0x01722992 PurpleEventCallback + 1550 19 CoreFoundation
0x00dab944 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52 20 CoreFoundation 0x00d0bcf7 __CFRunLoopDoSource1 + 215 21 CoreFoundation
0x00d08f83 __CFRunLoopRun + 979 22 CoreFoundation
0x00d08840 CFRunLoopRunSpecific + 208 23 CoreFoundation
0x00d08761 CFRunLoopRunInMode + 97 24 GraphicsServices
0x017211c4 GSEventRunModal + 217 25 GraphicsServices
0x01721289 GSEventRun + 115 26 UIKit 0x002c8c93 UIApplicationMain + 1160 27 ALPHA
0x000026a8 principal + 102 28 ALFA
0x00002639 inicio + 53)

Terminar llamada después de lanzar una instancia de 'NSException'

Gracias de nuevo,

Jack

 for ( NSString *image in photos ) { UIImage *image = [UIImage imageNamed:[photos objectAtIndex:i]]; ... 

Este es tu problema Tienes un NSString y un UIImage llamado lo mismo. Cuando networkingeclara su NSString como UIImage , está confundiendo su bucle forin . El ciclo parece seguir pensando que tienes un NSString , cuando en realidad tienes un UIImage . Entonces, nuestro primer paso es intentar replace ese código con este código en su lugar:

 for ( NSString *imageName in photos ) { UIImage *image = [UIImage imageNamed:imageName]; ... 

Sin embargo, ese código tampoco funcionará. Afortunadamente, su set de images ya almacena UIImages , ¡así que no necesita un NSString en absoluto! Por lo tanto, puede replace las tres primeras líneas de su ciclo con esto:

 for ( UIImage *image in photos ) { ... 

¡Eso es! No necesita su línea UIImage *image = ... en absoluto, ya que está creada entre paréntesis.

¡Espero que esto ayude!

En las photos ya guardas los objects UIImage. ¿Por qué intentas en ciclo loop creto UIImage de UIImage ?

 UIImage *image = [UIImage imageNamed:[photos objectAtIndex:i]]; 

Deberías hacer así:

 UIImage *image = [photos objectAtIndex:i]; 

fotos es un NSArray de UIImages sí, ¿lo estás enumerando como cadenas?

 for ( NSString *image in photos ) 

debiera ser:

 for ( UIImage *image in photos ) { UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.contentMode = UIViewContentModeScaleAspectFit; imageView.clipsToBounds = YES; imageView.frame = CGRectMake( imageView.frame.size.width * i++, 0, imageView.frame.size.width, imageView.frame.size.height); [aScrollView addSubview:imageView]; width = imageView.frame.size.width; height = imageView.frame.size.height; [imageView release]; }