Protokolle... ich verstehe nicht warum es so aufgebaut wird

Bullz

Mitglied
Thread Starter
Dabei seit
11.09.2011
Beiträge
63
Reaktionspunkte
0
Habe versucht das alles rauszukopieren aus dem Projekt... das Programm funktioniert ... ich verstehe aber nicht warum das genau so geschrieben ist.
Es macht einfach nicht klick ...

Main Methode:

Code:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ KlasseA* klasseA = [[KlasseA alloc] init]; Rechenknecht* rechenknecht = [[Rechenknecht alloc] init]; rechenknecht.protocolBerechnungen = klasseA; // Warum diese Zuweisung ? [rechenknecht rechnen]; return YES;}

Protokollberechnung.h
Code:
@protocol ProtocolBerechnungen <NSObject>

@required
- (void) berechnungStarten;
- (void) berechnungBeenden;

@optional
- (void) optionaleMethode;

@end

Rechenknecht.h
Code:
@interface Rechenknecht : NSObject

@property id<ProtocolBerechnungen> protocolBerechnungen; // Das verstehe ich so halbwegs. Man weiß nicht was für ein Objekt kommt	 // Hauptsache es unterstützt das Protokoll...

- (void) rechnen;
@end


Rechenknecht.m
Code:
@implementation Rechenknecht

-(void)rechnen
{
[self.protocolBerechnungen berechnungStarten];
NSLog(@"rechnen");
[self.protocolBerechnungen berechnungBeenden];
}

KlasseA.h
Code:
#import <Foundation/Foundation.h>
#import "ProtocolBerechnungen.h"

@interface KlasseA : NSObject <ProtocolBerechnungen>

@end
KlasseA.m
Code:
#import "KlasseA.h"

@implementation KlasseA


-(void)berechnungBeenden
{
NSLog(@"berechnungBeenden");
}


-(void)berechnungStarten
{
NSLog(@"berechnungStarten");
}

@end
 
ich weiß warum man Protokolle braucht, wie man sie anwendet.... aber ... ich kann es nicht 100 % nachvollziehen..

vielleicht fangen wir mit dem an.
rechenknecht.protocolBerechnungen = klasseA; find die Zuweisung komisch weil rechts vom = eine Klasse steht. Das hatte ich so noch nie
[self.protocolBerechnungen berechnungStarten];
 
Zurück
Oben Unten