Obj-C Protocol implementieren

nevermind

Bismarckapfel
Registriert
19.12.07
Beiträge
142
Hallo,

wie ich sehe habt ihr hier im Subforum grad viel zu tun ;), trotzdem kurze frage:

Code:
#import <Cocoa/Cocoa.h>
#import <Foundation/NSXMLParser.h>

@interface MyXMLParserDelegate : NSObject <NSXMLParserDelegate> { // Cannot find protocol declaration
}
-(MyXMLParserDelegate *) initWithElementID: (NSString*) e;
@end

jetzt steht aber in den docs, NSXMLParserDelegate wäre in NSXMLParser.h definiert, wo liegt der Fehler?

Danke.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
jetzt steht aber in den docs, NSXMLParserDelegate wäre in NSXMLParser.h definiert, wo liegt der Fehler?
Es ist in NSXMLParser.h deklariert, aber nicht mit der @protocol Direktive, sonder als Kategorie von NSObject. Lass einfach das <NSXMLParserDelegate> weg.

MacApple
 

nevermind

Bismarckapfel
Registriert
19.12.07
Beiträge
142
Danke!

Funktioniert natürlich, aber: Woher weiss die NSXMLParser Instanz, dass ich ihr ein Objekt als Delegate übergebe, dass das NSXMLParserDelagate Protocol implementiert, wenn ich das nicht deklariere? Dynamic Typing Mystery?
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Die NSXMLParser Instanz weiß es einfach nicht. Sie fragt einfach das Delegate Objekt zur Laufzeit, ob es die Delegate Methoden implementiert hat.

MacApple
 
  • Like
Reaktionen: nevermind

nevermind

Bismarckapfel
Registriert
19.12.07
Beiträge
142
Nice, wie eingebaute java reflection.

Thx again & grüsse
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Die Zeile:

#import <Foundation/NSXMLParser.h>

kannst du auch weglassen, denn das Foundation-Framework gehört zu Cocoa, du hast also den Header schon drin (natürlich wird er nur importiert, wenn er gebraucht wird :D).

Gruss ppocket