Prosty przykład delegata?

Ok, programuję w Celu-C i używając Xcode. Przeczytałem dokumentację na stronie internetowej Apple i rozumiem, czym są delegaci, ale kiedy dochodzę do części, w której mówi się o tym, jak faktycznie wdrożyć metody delegowania do kodu, po prostu się mylę, zwłaszcza gdy mówią coś w stylu „teraz implementuj delegata metoda." Może to tylko ja, ale nie wiem dokładnie, GDZIE do zaimplementowania metody (czy plik AppDelegate.h / .m będzie poprawną lokalizacją w prostej sytuacji, w której mam tylko klasę ViewController i AppDelegate?). Myślę, że naprawdę najlepszym sposobem, aby się nauczyć, jest zobaczenie bardzo prostego przykładu.

Mam jakiś kod poniżej i zastanawiałem się, czy ktoś może przejść i pokazać mi, jak połączyć delegata z ViewControllerem, aby pokazywał sumę? Przepraszam, jeśli kod wygląda na długi, ale jest to najprostszy przykład delegacji, jaki mogłem wymyślić. Ze względu na argumenty i mniej kodu do obejrzenia (co ułatwia mi zobaczenie, co się dzieje), powiedzmy, że serwer ServerClass * implementuje serwer, a klient ClientClass * implementuje klienta. Oba są już połączone ze sobą i czekają na wprowadzenie ich numeru. Odłożyłem to, co moim zdaniem byłoby poprawne, ale wiem na pewno, że nie jest kompletny (o ile łączy delegata z serwerem i klientem). Jedna rzecz, której nie wiem, gdzie umieścić, to deklaracje protokołów, więc jeśli ktoś mógłby zrobić ten prosty problem, pomógłby mi w nauce implementacji delegata w klasie.

Przy okazji, pracuję z Peer Picker w nowym GameKit iPhone SDK 3.0, jeśli ktoś chciałby mi pokazać, co łączy się z tym, co. Na przykład jestem wkrok 3 przewodnika Apple dla Peer Picker. Teraz nie wiem, gdzie krok 5 idzie w moim projekcie. Dzięki wszystkim, którzy mogą mi pomóc w zrozumieniu implementacji delegata ... wszyscy byliście do tej pory świetni!

ExampleAppDelegate.h

#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

ExampleAppDelegate.m

#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

ExampleAppViewController.h

#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

ExampleAppViewController.m

#import "ExampleAppViewcontroller.h"

@implementation ExampleAppViewController

@synthesize sum;
@synthesize num;

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

@end