2011-01-13 13 views
0

Ich habe zwei Eigenschaften ich in meinem Header-Datei deklarieren und in meiner Klasse (Name?) Synthetisieren Datei:Fehler: keine Angabe von Eigentum

  • Breite
  • Höhe

    (hash/pound Symbol) importieren

    @interface Rectangle : NSObject { int width; int height; } 
    
    @property width, height; 
    
    -(int) area; 
    -(int) perimeter; 
    -(void) setWidth: (int) w setHeight: (int) h; 
    
    @end 
    

.m-Datei:

(hash/pound symbol)import "Rectangle.h" 
@implementation Rectangle 

@synthesize width, height; 
-(void) setWidth: (int) w setHeight: (int) h 
{ 
    width = w; 
    height = h; 
} 
-(int) area 
{ 
    return width * height; 
} 
-(int) perimeter 
{ 
    return (width + height) * 2; 
} 
@end 

Allerdings erhalte ich einige Fehler:

error: syntax error before 'width; 
error: no declaration of property 'width' found in the interface; 
error: no declaration of property 'height' found in the interface; 

Bitte entschuldigen Sie die Formatierung ich Probleme mit dem Symbol ‚#‘ und der Code-Formatierung habe.

Antwort

3

ich überrascht bin ...

@property width, height; 

... das kompiliert sogar. Es sollte sein:

@property int width; 
@property int height; 

Und Sie haben fast nie sehen:

-(void) setWidth: (int) w setHeight: (int) h; 

Stattdessen die @property impliziert setWidth: und setHeight:.

+0

Dies funktioniert, danke! Ich muss warten, um die Antwort zu akzeptieren. – redconservatory

+0

@property int Höhe, Breite; –

+0

@KesongXie Richtig. Deshalb war ich überrascht, dass sogar kompiliert ... das war direkt aus dem OP-Code. – bbum

2

Versuchen Sie folgendes:

@interface Rectangle : NSObject 
{ 
    int width; 
    int height; 
} 

@property int width; 
@property int height; 

-(int) area; 
-(int) perimeter; 
-(void) setWidth: (int) w andHeight: (int) h; 

@end 
Verwandte Themen