2011-01-12 15 views
2

Was ist das äquivalente Konzept der Schnittstelle in Java in Ziel C. Ich möchte eine Schnittstelle erstellen und definieren einige allgemeine Variablen und Methoden, die von vielen Klassen von meiner Schnittstelle geerbt werden. Wenn irgendeine Klasse außerhalb eine Kindklasse verwenden möchte, erhält sie ein Referenzobjekt meiner Schnittstelle, das auf die korrekte Kindklasse verweist.Implementieren Laufzeit Polymorphismus und Vererbung

Wie erreicht man das in Objective C?

Antwort

5

Ein Ziel C-Äquivalent von Java-Schnittstellen heißt "protocol".

Ein kleines Intro kann auch here gefunden werden, und wenn Sie eine vollständige Referenz wollen, ist es at Apple

5

In Objective-C, können Sie dies durch den Einsatz von Protocols erreichen können. Ein Protokoll ist im Grunde der Vorläufer einer Schnittstelle in Java, also sollte das meiste Verhalten von selbst kommen.

Eine Protokollerklärung sieht wie folgt aus:

@protocol Foo 
-(void) foo; 
-(int) boo: (int) arg; 
@end 

Es kann von einer Klasse implementiert werden. In dem folgenden Fall würden Sie sagen MyClass entspricht dem Foo-Protokoll.

@interface MyClass <Foo> 
{ 
} 

@end 

@implementation MyClass 

-(void) foo { 
    //do something 
} 
-(int) boo: (int) arg { 
    //do something else 
    return arg; 
} 

@end 

Schließlich können Sie sie wie folgt passieren um:

-(void) someMethod: (id<Foo>) arg; 

Wenn Sie spezifischere über das Objekt sein müssen, können sie auch wie folgt verwendet werden:

-(void) someMethod: (NSObject<Foo> *) arg; 
Verwandte Themen