ultima tutorial objective logo objective-c

objective c - tutorial - @interface y @protocol explicación?



objective c vs swift (3)

La @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 lo ha observado). Las interfaces estilo Java se llaman protocolos en Objective-C y se declaran utilizando la directiva @protocol . Deberías leer The Objective-C Programming Language de Apple, es un buen libro, corto y muy accesible.

Me gustaría saber qué es la interfaz @ 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 @protocol en el objetivo C también. Parece que la interfaz en Java más. ¿Podría alguien darme una explicación detallada por favor? Realmente lo aprecio


Una interfaz es donde defines los atributos y las operaciones de la clase. Debe establecer la implementación también.

Un protocolo es como una interfaz para Java.

p.ej

@protocol Printing -(void) print; @end

puede ser implementado

al declarar (confusamente en la interfaz)

@interface Fraction: NSObject <Printing, NSCopying> { //etc..

Lo confuso para los desarrolladores de Java es que las llaves {} no son el final de la interfaz, por ejemplo

@interface Forwarder : Object { id recipient; } //This is not the end of the interface - just the operations - (id) recipient; - (id) setRecipient:(id) _recipient; //these are attributes. @end //This is the end of the interface


probablemente sea bueno si le echas un vistazo a this + pensé que fue 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