Cómo resolver ningún tipo o protocolo llamado error en Xcode 7?

Estoy tratando de passing valores de segunda class a primera class, para eso estoy usando el protocol y el process de delegate . Cada vez que ejecuto mi progtwig me enfrento a continuación Problema.

No Type or Protocol Named 'locateMeDelegate'

Ningún tipo o protocolo con nombre ...

Viewcontroller A .h

 @interface first : UIViewController < locateMeDelegate > { } 

Normalmente, si pretende que otras classs usen su protocolo, debe declararlo en el file de encabezado de la siguiente manera:

 // MyClass.h @protocol MyProtocol; @interface MyClass : NSObject @end @protocol MyProtocol - (void) doSomething: (MyClass*) m; @end 

Después de declararlo, debe implementar los methods del protocolo en el file de implementación, que debe cumplir con el protocolo como este:

 // MyClass.m @implementation MyClass <MyProtocol> pragma mark - MyProtocol methods - (void) doSomething: (MyClass *)m { // method body } @end 

Después de estos dos pasos, estará listo para usar su protocolo en cualquier class que desee. Por ejemplo, digamos que queremos transferir datos a MyClass desde otra class (por ejemplo, OtherClass.h). Debería declarar en la propiedad OtherClass.ha para que podamos consultar MyClass y ejecutar el protocolo. Algo como esto:

 // OtherClass.h #import MyClass.h @interface OtherClass : NSObject @property (weak) id<MyProtocol> delegate; @end 

No olvide importar el file de encabezado donde declaró su protocolo, de lo contrario, Xcode solicitará No Type o protocolo denominado "MyProtocol"

  • id<MyProtocol> delegate; significa que puede establecer como delegado de OtherClass cualquier object ( id ) que se ajuste al protocolo MyProtocol ( <MyProtocol> )

Ahora puede crear un object OtherClass desde MyClass y establecer su propiedad de delegado en sí mismo. Me gusta esto:

 // MyClass.m - (void)viewDidLoad() { OtherClass *otherClass = [[OtherClass alloc] init]; otherClass.delegate = self; } 
  • Es posible establecer el delegado en sí mismo porque el delegado puede ser cualquier object y MyClass ajusta a MyProtocol .

Espero que esto pueda ayudar. Si desea saber más sobre los protocolos, puede consultar estos dos sitios web:

Trabajando con protocolos – Documentación de Apple

Tutorial de Objective-C de Ry (este es fácil de captar)

En mi caso, el problema se debió a la import del file de encabezado del delegado al file .h de la class del delegador. Esto parece crear una especie de círculo vicioso. Tan pronto como eliminé la statement de import del encabezado del delegado del file .h del delegador, el error desapareció.

    Intereting Posts