Me gustaría saber cuál es la @interface en el objetivo C? ¿Es justo donde el programador quiere declarar las variables, el nombre de la clase o los nombres de los métodos ...? No estoy seguro de si es como una interfaz en Java. Y sobre el @protocolo en el objetivo C también. Parece más la interfaz en Java. ¿Alguien podría darme una explicación detallada por favor? Realmente lo aprecio.
objective-c
Balancín
fuente
fuente
myObject.lpVtbl->x(&myObject)
) sino a través de una interfaz dual, análoga a cmyObject.lpVtbl->Invoke(&myObject, "x", &argArray);
. Debido a esto, los protocolos y las interfaces parecen servir para proporcionar al compilador información para generar tiempo de ejecución y verificación de tipo en tiempo de compilación. Por lo tanto, no hay un verdadero paralelo en C ++ a menos que introduzca un motor de secuencia de comandos / COM en su proyecto.probablemente bueno si echas un vistazo a esto + Pensé que era de gran ayuda entender
Del artículo:
@interfaz
C ++
Foo.h
#ifndef __FOO_H__ #define __FOO_H__ class Foo { ... };
Foo.cpp
#include "Foo.h" ...
C objetivo
Foo.h
@interface Foo : NSObject { ... } @end
Foo.m
#import "Foo.h" @implementation Foo ... @end
@protocolo
C ++
struct MyInterface { void foo() = 0; } class A : MyInterface { public: void override foo() { ... } }
C objetivo
@protocol MyInterface -(void) foo; @end @interface Foo : NSObject <MyInterface> { -(void) foo {...} ... } @end
fuente
@protocol
define algunos métodos generales,@interface
define algunos métodos personalizados e@implementation
implementa esa interfaz.@interface
no tiene ninguna implementación. Además, si elfoo
método es el mismo que el del protocolo, no debe repetirse en la interfaz.El
@interface
en Objective-C no tiene nada que ver con las interfaces Java. Simplemente declara una interfaz pública de una clase, su API pública. (Y variables miembro, como ya ha observado.) Las interfaces de estilo Java se denominan protocolos en Objective-C y se declaran mediante la@protocol
directiva. Debería leer El lenguaje de programación Objective-C de Apple, es un buen libro, breve y muy accesible.fuente