Objective-C getter/ setter

J'essaie de travailler mon chemin à travers un Objectif-C-tutoriel. Dans le livre, il y a cet exemple:

@interface
{
 int width;
 int height;
 XYPoint *origin;
}
@property int width, height;

J'ai pensé: "hé, il n'y a pas de getter/setter pour la XYPoint objet. Le code fonctionne bien." Maintenant, je vais peut-être répondre à ma propre question :).

Je pense que c'est parce que "l'origine" est un pointeur déjà, et ce qui se passe sous le capot avec "largeur" et "hauteur", c'est qu'il va te sera créé un pointeur vers eux..

Suis-je en droit, ou suis-je en train de parler BS 🙂 ??

J'ai tout simplement pas l'obtenir. voici les principaux:

#import "Rectangle.h"
#import "XYPoint.h"
int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    Rectangle *myRect = [[Rectangle alloc] init];
    XYPoint *myPoint = [[XYPoint alloc] init];

    [myPoint setX: 100 andY: 200];
    [myRect setWidth: 5 andHeight: 8];

    myRect.origin = myPoint; 

    NSLog (@"Rectangle w = %i, h = %i",
           myRect.width, myRect.height); 

    NSLog (@"Origin at (%i, %i)",
           myRect.origin.x, myRect.origin.y);

    NSLog (@"Area = %i, Perimeter = %i",
           [myRect area], [myRect perimeter]);

    [myRect release];
    [myPoint release];
    [pool drain];

    return 0;
}

Et voici l'objet Rectangle:

#import "Rectangle.h"
#import "XYPoint.h"

@implementation Rectangle
@synthesize width, height;

-(void) setWidth: (int) w andHeight: (int) h
{
    width = w;
    height = h;
}

- (void) setOrigin: (XYPoint *) pt
{
    origin = pt;
}
-(int) area
{
    return width * height;
}
-(int) perimeter
{
    return (width + height) * 2;
}
-(XYPoint *) origin
{
    return origin;
}
@end

Ce que je ne comprends pas est-ce la ligne principale: myRect.origin = myPoint; je n'ai pas fait un setter pour elle..

BTW merci pour votre réponse rapide du

OriginalL'auteur pic-o-matic | 2010-04-11