• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

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.
 
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
 
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?
 
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
Nice, wie eingebaute java reflection.

Thx again & grüsse
 
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