Simple Exemple De Délégué?

Ok, je suis à la programmation en objective-C et à l'aide de Xcode. J'ai lu attentivement la documentation sur le site web d'Apple et de comprendre ce que délégué, mais quand j'arrive à la partie où il parle de la façon de mettre en œuvre effectivement délégué méthodes dans le code, je viens de devenir confus, surtout quand ils disent quelque chose comme "maintenant mettre en œuvre le délégué de la méthode". Peut-être que c'est juste moi, mais je ne sais pas exactement OÙ en œuvre de la méthode (l'AppDelegate.h/.m du fichier de l'emplacement correct dans une situation simple où je n'ai que le ViewController et AppDelegate classe?). Je suppose que la meilleure façon pour moi d'apprendre est de voir un exemple très simple.

J'ai un peu de code ci-dessous et je me demandais si quelqu'un pouvait aller de travers et me montrer comment connecter le délégué à la ViewController de sorte qu'il affiche la somme? Désolé si le code est long, mais c'est le plus simple délégation exemple, je pense. Pour la clarté de l'exposé et avoir moins de code à regarder (le rendant plus facile pour moi de voir ce qui se passe), permet de dire ServerClass *serveur implémente un serveur et ClientClass *client implémente un client. Les deux sont déjà connectés les uns aux autres et sont en attente à l'entrée de leur nombre. Je l'ai mis vers le bas, je pense que ce serait correct, mais je sais pour sûr, il n'est pas complet (autant que de connecter le délégué à la fois serveur et client). Une chose que je ne sais pas où les mettre sont les déclarations au titre du protocole, donc si quelqu'un pourrait s'il vous plaît faire ce simple problème, il serait m'aider beaucoup comme apprendre un délégué est mis en œuvre dans une classe.

En passant, je suis en train de travailler avec les Pairs Sélecteur dans le nouveau GameKit du SDK de l'iPhone 3.0 si quelqu'un voudrais aussi me montrer ce qu'il se connecte à ce. Pour exemple, je suis à l'étape 3 de la Pomme guide pour les Pairs Sélecteur. Maintenant, je ne sais pas où l'étape 5 va dans mon projet. Merci à tous ceux qui peuvent m'aider à comprendre ce délégué la mise en œuvre...vous avez tous été très bien jusqu'à présent!

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
Si il y a un problème de syntaxe dans mon code, alors c'est parce que je ne suis pas sur mon Mac en ce moment, j'ai dû taper sur un PC windows.
J'ai lu le commentaire à propos de la syntaxe, mais dans le cas où vous ne le saviez pas, je crois que vous n'avez pas besoin (nonatomic, retain) pour un entier. Je peux me tromper bien, j'ai la base de cette déclaration de code que j'ai vu et le fait que vous n'avez pas conserver entiers, autant que je sache. Il suffit de ne @property somme;
Je crois que le préféré de la propriété mix @property(nonatomic,céder) pour des choses qui ne sont pas des pointeurs vers des objets (entiers, Booléens, etc.)

OriginalL'auteur Josh Bradley | 2009-06-27