使用未声明的标识符:矩形的面积和周长

时间:2012-08-21 20:53:56

标签: objective-c ios xcode

我是Objective-C的新手,不完全确定我在哪里出错了。 我试图让程序打印一个正方形的区域和周边。 该程序告诉我,我正在向周边和区域方法发送未声明的标识符

#import <Foundation/Foundation.h>

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

-(void) setWidth: (int) w;
-(void) setHeight: (int) h;
-(int) width;
-(int) height;
-(int) area;
-(int) perimeter;

@end

@implementation Rectangle


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

-(void) setHeight: (int)h
{
height = h;
}

-(int) width
{
return width;
}

-(int) height
{
return height;
}

-(int) area
{
return width*height;
}

-(int) perimeter
{
return (2*width + 2*height);
}


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

@autoreleasepool {

    Rectangle *rect1 = [[Rectangle alloc] init];

    [rect1 setWidth:2];
    [rect1 setHeight:7];

    NSLog(@"The perimeter of rect1 is: %i and the area is: %i", area, area);


}
return 0;
}

3 个答案:

答案 0 :(得分:1)

没有变量命名区域,它是一种方法。尝试[rect1 area];[rect1 perimeter];,您已经创建了对象并正确使用了两种方法,您在该区域滑倒:(祝你好运!

答案 1 :(得分:1)

出于好奇,您使用的学习资源是什么?

我强烈推荐Paul Hegarty来自斯坦福大学的iOS开发课程。全部免费,它真正指导您完成所有事情(ObjC语法; iOS SDK等)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

答案 2 :(得分:0)

我将行改为:

NSLog(@"The perimeter of rect1 is: %i and the area is: %i", [rect1 area], [rect1 perimeter]);

它给了我正确的结果,谢谢你的帮助!