2012-09-27 21 views
5

Recientemente actualicé mi XCode a la versión 4.5 y ahora estoy teniendo problemas cuando intento desarrollar aplicaciones para iOS 5.0/5.1.Problemas con el simulador iOS 5.1 con XCode 4.5

Desarrollé un simple juego de iPad en el que el usuario necesita unir las imágenes con las palabras correspondientes. Todos estos elementos se almacenan en UIImageView, si eso es relevante. La orientación de interfaz admitida es solo horizontal.

Cuando ejecuto mi aplicación usando el Simulador de iPad 6.0 todo funciona bien sin ningún problema. Pero cuando intento ejecutarlo usando 5.1, todo sale mal. Las imágenes simplemente no aparecen y mi imagen de fondo aparece de lado y se repite. La barra de estado también aparece incorrectamente: la orientación del dispositivo es horizontal, pero la barra lateral aparece en el lado derecho. Esto tampoco sucede cuando uso 6.0 simulador.

En los detalles del proyecto ya cambié el Objetivo de implementación de iOS a 5.1, así como en el Guión gráfico. Al usar el destino de despliegue de iOS 5.1 en el guión gráfico, no me dejes seleccionar la opción "Usar ajuste automático", por lo que deseleccioné esta opción. ¿Esto es causado por esta opción?

Ya intenté ejecutar mi aplicación en un dispositivo, pero el resultado es el mismo. Desde que instalé XCode 4.5 empecé a tener este tipo de problemas, ya que, por ejemplo, ni siquiera puedo ejecutar correctamente una plantilla de "aplicación de detalles maestros" en el simulador iOS 5.x, ya que se bloquea cuando hago clic en el botón "Agregar" .

¿Me falta algo para ejecutar las aplicaciones 5.x creadas con SDK 6? Ya busqué en muchos foros pero todavía no he encontrado ninguna solución para este tipo de problema. Estaré encantado de escuchar cualquier tipo de sugerencia, ya que perdí mucho tiempo con este tema y me estoy quedando sin opciones.

[EDITAR]: Recordé un detalle que puede ser relevante para este problema: mi vista en el guión gráfico es una vista personalizada. Creé una clase que se extiende desde UIView para poder anular la función drawRect para dibujar líneas entre mis objetos. Luego, en Storyboard, en la Vista, seleccioné mi clase en Custom Class -> Class.

Me di cuenta de que cuando ejecuto 5.1 Simulator la barra de estado aparece inicialmente en la parte superior y luego cuando la ventana está cargada, va hacia la derecha.

Si quiere saber cualquier otro detalle, solo pregúnteme.

Muchas gracias.

Respuesta

2

¿Has revisado tu guión gráfico para asegurarte de haber cerrado el autodeslizado? Autolayout solo funciona con iOS6. Esta opción se puede encontrar al mirar su controlador de vista en el Área del inspector de archivos en el Documento del Constructor de interfaz. Es una casilla de verificación

+0

Sí, como dije en mi pregunta inicial, apagué Autolayout. Si esta opción está marcada, XCode ni siquiera me deja ejecutar el proyecto usando el simulador 5.1. – fabioalmeida

+0

Observé que para mantener la orientación horizontal en el simulador 5.1, debo anular el método shouldAutorotateToInterfaceOrientation en View Controller, pero las imágenes que definí en Storyboard aún no aparecen. ¿Debo cambiar algo para que funcione correctamente en 5.1 Simulator como en 6.0? – fabioalmeida

0

Parece que no eres la única persona con problemas de Simulator 5.1 en XCode 4.5. Bug in iPhone Simulator 5.1 with Xcode 4.5 using UIManagedDocument Mis aplicaciones se rompieron también. 5.0 sim parece funcionar bastante bien.

+0

Mi problema ocurre tanto en 5.0 como en 5.1. Por ejemplo, ni siquiera puedo ejecutar correctamente una plantilla de "Aplicación de detalles maestros" en ningún simulador iOS 5.x, pero funciona bien en 6.0. – fabioalmeida

4

Inglés no es mi nativa así que por favor perdone mi gramática ...

En cuanto a su maestro-detalle "Añadir" botón de tema, esto es lo que funcionó para mí.

De lo que puedo decir, la aplicación se bloquea debido a:

[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 

Ayuda rápida dice:

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath declaration is only available in iOS (6.0 and later). 

así que traté de cambiar el código en MasterViewController.m:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

para el código que Xcode usó en versiones anteriores:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

    } 
    [self configureCell:cell atIndexPath:indexPath]; 
    return cell; 
} 

Espero que esto ayude.

Cuestiones relacionadas