0
  1. これをコンパイルすると、値の代わりにゼロが得られます。何か提案はありますか?

  2. ここのコードは、私が作成した単純な四角形クラスに関するものです。

     #import <Foundation/Foundation.h>
    
     @interface Rectangle : NSObject {
           int width;
           int height;
     }
     @property int width, height;
     -(int) area;
     -(int) perimeter;
     -(void) setWH: (int) h: (int) w;
    
     @end
    
    
     #import "Rectangle.h"
    
     @implementation Rectangle
     @synthesize width, height;
     -(int) area {
          width*height;
     }
     -(int) perimeter {
          (width+height)*2;
     }
     -(void) setWH:(int)h :(int)w {
           w = width;
           h = height;
     }
     @end
    
    
    
     #import <Foundation/Foundation.h>
     #import "Rectangle.h" 
    
     int main (int argc, const char*argv[]) {
            @autoreleasepool {
                   Rectangle* r = [[Rectangle alloc]init];
    
                   [r setWH: 6:8];
                   NSLog(@"the width of the rectangle is %i and the hieght %i", r.width, r.height);
                   NSLog(@"the area is %i and the perimeter is %i", [r perimeter], [r area]);
    
       }
     }
    
4

2 に答える 2

3

変数の割り当てを反転しました:

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

そのはず

-(void) setWH:(int)h :(int)w {
       width = w;
       height = h;
 }
于 2013-06-25T01:12:46.507 に答える