目标c中的int的getter和setter

时间:2014-12-05 14:58:31

标签: ios objective-c iphone macos

我是Objective C的新程序员...我的代码中有一些问题,我不知道为什么我会收到错误... 这是我的代码: Rectangle.h:

    #import <Foundation/Foundation.h>



 @interface Rectangle : NSObject
    {
        int width;
        int height;
    }
        @property(setter=setWidthOfRect: , getter=getWidth) int width;
        @property(setter=setHeightOfRect: , getter=getHeight) int height;
 @end

Rectangle.m:

#import "Rectangle.h"

@implementation Rectangle
    @synthesize width, height;
    @end

这是main.m:

#import <Foundation/Foundation.h>
#import "Rectangle.h"



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Rectangle *rect = [[Rectangle alloc] init];
        [rect setWidthOfRect:22];
        [rect setHeightOfRect:28];
     NSLog(@"the area is: %d", [rect getHeight] * [rect getWidth]);

    }
    return 0;
}

我不明白:&#34;面积是616 有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

摆脱属性宽度和高度以上的额外注意。属性生成您已指定的数据类型,在那里您可以定义set属性方法名称,获取属性名称以及其他属性标志。

答案 1 :(得分:2)

最好使用默认的getter / setter,只需写下这样的属性:

@property (nonatomic, assign) int width;

你甚至不需要写@synthesize和ivars。你可以像这样使用它:

object.width = 5; // or
[object setWidth:5];

int width = object.width; // or
int width = [object width];