Einfaches Delegate-Beispiel?

Ok, ich programmiere in Objective-C und benutze Xcode. Ich habe die Dokumentation auf der Apple-Website gelesen und verstehe, was Delegierte sind, aber wenn ich zu dem Teil komme, in dem darüber gesprochen wird, wie Delegiertenmethoden tatsächlich in Code implementiert werden, bin ich nur verwirrt, insbesondere, wenn sie so etwas wie "Jetzt implementiere die Delegierten" sagen Methode." Vielleicht bin es nur ich, aber ich weiß nicht genau, wo ich die Methode implementieren soll (wäre die Datei AppDelegate.h / .m in einer einfachen Situation, in der ich nur die Klasse ViewController und AppDelegate habe, der richtige Speicherort?). Ich denke wirklich, der beste Weg für mich zu lernen ist, ein sehr einfaches Beispiel zu sehen.

Ich habe unten einen Code und habe mich gefragt, ob mir jemand zeigen kann, wie ich den Delegaten mit dem ViewController verbinden kann, damit die Summe angezeigt wird. Es tut mir leid, wenn der Code lang aussieht, aber dies ist das einfachste Delegierungsbeispiel, das ich mir vorstellen kann. Nehmen wir an, der ServerClass * Server implementiert einen Server und der ClientClass * Client implementiert einen Client. Beide sind bereits miteinander verbunden und warten darauf, ihre Nummer einzugeben. Ich schreibe auf, was ich für richtig halte, aber ich weiß, dass es nicht vollständig ist (was die Verbindung zwischen dem Delegaten und dem Server und dem Client betrifft). Ich weiß nicht, wo ich die Protokolldeklarationen ablegen soll. Wenn also jemand dieses einfache Problem lösen könnte, würde es mir sehr helfen, zu lernen, wie ein Delegierter in eine Klasse implementiert wird.

Übrigens arbeite ich mit dem Peer Picker im neuen GameKit des iPhone SDK 3.0, wenn mir auch jemand zeigen möchte, was sich mit was verbindet. Zum Beispiel bin ich beiSchritt 3 des Apple-Handbuchs für Peer Picker. Jetzt weiß ich nicht, wohin Schritt 5 in meinem Projekt führt. Vielen Dank an alle, die mir helfen können, die Implementierung dieses Delegaten zu verstehen ... Sie waren alle bisher großartig!

ExampleAppDelegate.h

<code>#import <UIKit/UIKit.h>

@class ExampleAppViewController;

@interface ExampleAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    ExampleAppViewController *viewController;
    int sum;
}

@property (nonatomic, retain) sum;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet ExampleAppViewController *viewController;

-(void) addNum:(int)num;
@end
</code>

ExampleAppDelegate.m

<code>#import "ExampleAppDelegate.h"
#import "ExampleAppViewController.h"

@implementation ExampleAppDelegate

@synthesize window;
@synthesize viewController;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    application.idleTimerDisabled = YES;

    // Override point for customization after app launch    
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
}


- (void)dealloc {
    [viewController release];
    [window release];
    [super dealloc];
}

-(void)addNum:(int)num {
    sum += num;
}

@end
</code>

ExampleAppViewController.h

<code>#import <UIKit/UIKit.h>
#import <GameKit/GameKit.h>

@interface ExampleAppViewcontroller : NSObject {
        IBOutlet UILabel *sumField; // will display the total sum, one number entered //by the server and one entered by the client, on both iPhones after calculation

        int sum; // the total sum after addition;
        ServerClass *server; // some server
        ClientClass *client; // some client
        int num; // the number to add to sum
}

@property(nonatomic, assign) sum;
@property(nonatomic, retain) num;

-(void) displaySum;
@end
</code>

ExampleAppViewController.m

<code>#import "ExampleAppViewcontroller.h"

@implementation ExampleAppViewController

@synthesize sum;
@synthesize num;

-(void) displaySum {
    [sumfield setText: @"%i", sum];
}

@end
</code>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage