In questo thread su richiesta di altri utenti (che brontolano un sacco sulla sintassi di Objective-c) volevo discutere di come si scrive una classe.
inizo con una classe semplice:
// file .h
@interface MyPoint : NSObject
@property double X;
@property double Y;
-(id) initX:(double)x andY:(double)y;
@end
// file .m
@implementation MyPoint
@synthesize X;
@synthesize Y;
-(id) initX:(double)x andY:(double)y
{
X = x;
Y = y;
return self;
}
@end
un altro modo di fare la stessa cosa è:
// file .h
@interface MyPoint : NSObject
{
double x;
double y;
}
-(void) setX: (double) ax;
-(void) setY: (double) ay;
-(double) getX;
-(double getY;
-(id) initX:(double)ax andY:(double)ay;
@end
// file .m
@implementation MyPoint
-(id) initX:(double)ax andY:(double)ay
{
self = [super init];
if (self){
[self setX: ax];
[self setY: ay];
}
return self;
}
-(void) setX: (double) ax {
x = ax;
}
-(void) setY: (double) ay {
y = ay;
}
-(double) getX {
return x;
}
-(double) getY {
return y;
}
@end
Evidentemente l' uso delle property è da incoraggiare. In SetX/SetY il parametro è stato chiamato ax/ay per non collidere col nome del campo.
EDIT: sono state fatte alcune modifiche (vedi i post sucessivi)