-1

私は Objective-C の初心者で、この基本的なプログラムを作成しました。セクションでエラーが発生しています。とセクション@interfaceの両方を作成する方法について、初心者に簡単な説明はありますか? 以下のプログラムの何が問題になっていますか?@interface@implementation

    #import <Foundation/Foundation.h>

    @interface Rectangle : NSObject {
    //declare methods
    - (void) setWidth: (int) a;
    - (void) setHieght: (int) b;
    - (double) perimeter;
    - (double) area;

    }
    @end

     @implementation Rectangle


    {
    double area;
    double perimeter;
    int width;
    int height;
    }
    - (void) setWidth: (int) a
    {
        width = a;  
    }
    - (void) setHieght: (int) b
   {
    hieght = b;
    }

    @end

    int main (int argc, const char * argv[])
    {

    NSAutoreleasePool * Rectangle = [[NSAutoreleasePool alloc] init];
    int a = 4
    int b = 5
    int area = a * b;
    int perimeter = 2 * (a +b);

    NSLog(@"With width of %i and Hieght of %i", a, b);
    NSLog(@"The perimeter is %i", perimeter);
    NSLog(@"The Area is %i", area);

    [pool drain];
    return 0;
    }
4

2 に答える 2

0

あなたのコードにはいくつかの問題があります。後で見ていきますが、初心者として知っておくべきことはいくつかあります。

  • main()プロジェクトのクラス用main.mです。あちこちでそれを台無しにしないでください。init()代わりに使用してください
  • {} スコープ内でメソッドを宣言しないでください@implementaion
  • 実行したいことの後@end@implementation書くべき
  • @implementationで終わるため、{} スコープに限定しないでください@end
  • さらに、ここで見つけてくださいhttp://www.slideshare.net/musial-bright/objective-c-for-beginners

したがって、次のようになります。

#import <Foundation/Foundation.h>

@interface Rectangle : NSObject

//declare methods
- (void) setWidth: (int) a;
- (void) setHieght: (int) b;
- (double) perimeter;
- (double) area;

@end

@implementation Rectangle

    {ダブルエリア; 二重周囲; int 幅; int の高さ; }

- (void) setWidth: (int) a {
    width = a;
}

- (void) setHieght: (int) b {
    height = b;
}

- (id)init
{
    self = [super init];
    if (self) {
        // Custom initialization
        int a = 4;
        int b = 5;
        int area = a * b;
        int perimeter = 2 * (a +b);

        NSLog(@"With width of %i and Hieght of %i", a, b);
        NSLog(@"The perimeter is %i", perimeter);
        NSLog(@"The Area is %i", area);
    }
    return self;
}

@end
于 2013-07-27T06:13:51.647 に答える