2012-01-25 15 views
11

Tenía mi aplicación funcionando bien, sin hacer nada, de la nada obtuve 2 errores en appDelegate.h. Se dice esto:Error del "cuerpo del método esperado"

selector esperado para el método de Objective-C

El otro dice esto:

cuerpo del método esperado

no tengo idea de por qué esto es sucediendo, tengo otros proyectos con el mismo delegado de la aplicación exacta y todos funcionan bien.

Esta es mi appDelegate.h:

#import <UIKit/UIKit.h> 

@interface AppDelegate : UIResponder <UIApplicationDelegate> // I get the errors here 

@property (strong, nonatomic) UITabBarController *tbc; 
@property(strong, nonatomic) UIWindow *window; 

@end 

Respuesta

3

Intente cerrar Xcode y luego volver a abrir y hacer una construcción limpia.

Si eso no lo soluciona, es posible que tenga una referencia circular en uno de sus archivos de encabezado.

Esto puede suceder cuando foo.h #imports "bar.h" y bar.h #imports "foo.h" (o a veces es una cadena de tres o más archivos de cabecera que se importan entre sí en un círculo) y conduce a errores falsos como el que estás viendo.

La solución es intentar evitar la importación de encabezados en sus archivos .h, y en su lugar usar referencias de clase para las clases externas en los archivos .h y colocar las #importaciones en los archivos .m en su lugar.

+0

He verificado la referencia circular y no es el caso. También cerré y volví a abrir Xcode, e incluso reinicié mi máquina y aún no tuve éxito. Aunque no probé la "construcción limpia", ¿cómo hago eso? ¡Gracias! –

+0

Barra de menú> Producto> Limpiar (o Command-shift-K) –

+0

Acabo de hacer la compilación limpia y todavía no tuve suerte. ¡Gracias! Aprecio tu tiempo. –

12

Normalmente encuentro que ocurre un error misterioso como este porque accidentalmente escribí un carácter callejero en uno de mis otros archivos fuente, ya sea al final de uno de los otros archivos de encabezado o en la parte superior de un archivo .m.

Busque en la parte superior del archivo .m que Xcode intenta compilar. Compruébalo en busca de personajes extraviados. Si no encuentra ninguno, observe qué archivo se importa justo antes de AppDelegate.h. Compruebe si hay caracteres extraviados al final de ese otro archivo de encabezado. Si tiene archivos de encabezado que importan AppDelegate.h, es posible que también deba verificarlos. (Realmente no hay razón para que otro archivo .h deba importar AppDelegate.h.)

+2

¡Tenía un + en la parte superior del archivo, antes de que comience el comentario! Fue difícil de encontrar y tuve que volver con cmd + z, ¡pero finalmente lo encontré! – NicTesla

23

Tuve el mismo problema. Por fin encontré que en mi main.m había agregado accidentalmente un carácter "-" al principio del archivo.

Eliminar el carácter resolvió el problema.

+0

No se deben agregar caracteres adicionales al archivo main.m – Vinodh

+0

Tuve el mismo problema, solo por el protocolo. Hubo un "-" por accidente escrito en uno de los archivos de ViewController. Eso fue tan molesto, ya que el problema es que la dirección es totalmente diferente. – Jonauz

+0

Gracias, tenía exactamente el mismo problema en uno de mis ViewControllers. ¡Qué error tan espeluznante! Echar un vistazo a los registros de compilación ayudó. – Tyron

0

En mi caso, el nombre de la variable se reservó a C++ porque cambio mis archivos a *.mm

2

Yo tenía el mismo problema que era como:

-(void) gotoHome(){ ...} 

Porque soy nuevo en C objetiva, que se olvidó de "no usar" llaves de apertura y cierre cuando envíe argumentos de la función

0

Básicamente, el

cuerpo método esperado

es becau ¡hay un tipo/personaje extra en alguna parte!

Para mí fue porque el nombre del método predefinido de Apple fue mal escrito.

0

Este mensaje también puede ocurrir después de pegar algún código de Internet. Puede haber algunos caracteres invisibles en tu fragmento.

  • Lo que se ve en XCode con caracteres invisibles OFF
    What you see in XCode
  • lo que se esconde (visto en otro editor de texto)
    What's hidden (viewed in another text editor)
  • Lo XCode 7.3 muestra con caracteres invisibles pone en ON *
    What XCode 7.3 shows with invisible chars turned ON
    Usted puede configurar XCode 7.3 para mostrar los caracteres invisibles yendo en "Preferencias ...> Enlaces de teclas". Encuentra "invisible" y elige una combinación de teclas (Comando + Mayús + F1, por ejemplo).

así que una de las soluciones (ver los demás por encima ...) si usted tiene el error "previstos Método Body" es volver a escribir la línea errónea de cero.

0

En mi caso copié sobre mis nuevos métodos en mi archivo de implementación sobre el archivo de encabezado. También copié sobre la línea @implementation Class (category) y olvidé cambiarlo a @interface.

Cuestiones relacionadas