加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – Getter和Setter解释?

发布时间:2020-12-14 17:37:09 所属栏目:百科 来源:网络整理
导读:我只是从我读过的一本书(Big Nerd Ranch)学习OOP,它只是通过了getter和setter章节.我想澄清一点,我明白我刚刚做了什么.我创建了使用@property和@synthesize语法来定义这两种方法,而不是创建一个设置实例值的方法,然后是另一个提取值并显示它的方法. 而不是这
我只是从我读过的一本书(Big Nerd Ranch)学习OOP,它只是通过了getter和setter章节.我想澄清一点,我明白我刚刚做了什么.我创建了使用@property和@synthesize语法来定义这两种方法,而不是创建一个设置实例值的方法,然后是另一个提取值并显示它的方法.

而不是这样做:

-(void) setHeightOfObject:(int)h;
-(void) setWeightOfObject:(float)w;
-(int) heightOfObject;
-(float) weightOfObject;

并像这样定义它:

- (int)heightOfObject
{
    return heightOfObject;
}

- (void)setHeightOfObject:(int)h
{
    heightInMeters = h;
}

- (float)weightOfObject
{
    return weightOfObject;
}

- (void)setWeightOfObject:(float)w
{
    weightOfObject = w;
}

我会在.h文件中使用getter和setter来执行此操作:

@property int heightOfObject;
@property float weightOfObject;

然后转到我的.m文件并链接它:

@synthesize heightInMeters,weightOfObject;

这使我能够设置我的对象的值,然后如果我需要它打印它得到它?我知道这是一个重要的概念,我想确保我对它有适当的把握.

解决方法

你是对的. @synthesize必需扩展到编译时编写的实现.

由于编写getter和setter是无聊和重复的(并且大多数对象都有一堆属性,你需要getter和setter),这个小小的快捷方式可以让你花费更少的时间在boilerplate code上,更多时间实现一些有趣的东西.

如果您想了解有关objective-c属性的更多详细信息,可以查看programming guide(尽管此时可能有点不必要的详细信息).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读