文档章节

Objective-C 中自动生成 setter getter 方法

兔之
 兔之
发布于 2017/09/11 17:12
字数 203
阅读 33
收藏 1

对于 C++ 这种语言,类中的私有成员变量需要自己去实现 setter 和 getter 方法。这种重复的东西其实没必要手动去完成,可以让编译器去自动生成。

Objective-C 中使用 @property@synthesize 关键字来自动生成这些方法。

Fraction.h

#import <Foundation/Foundation.h>

@interface Fraction : NSObject

@property int numerator, denominator;

- (void) print;

@end

在 .h 文件中用 @property 关键字指明 numerator 和 denominator 两个成员变量需要去生成 setter getter 方法

Fraction.m

#import "Fraction.h"

@implementation Fraction

@synthesize numerator, denominator;

- (void) print
{
    NSLog(@"%i/%i", numerator, denominator);
}

@end

在 .m 文件的类实现中用 @synthesize 关键字指明自动生成方法

main.m

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Fraction* myFraction = [[Fraction alloc] init];
        
        [myFraction setNumerator: 111];
        [myFraction setDenominator: 3];
        
        NSLog(@"The value of myFraction is: %i", [myFraction numerator]);
    }
    
    return 0;
}

© 著作权归作者所有

共有 人打赏支持
兔之
粉丝 66
博文 247
码字总数 95896
作品 7
深圳
程序员
Objective-C之Property

在Objective-C中引入了属性这个概念,当然了这东西并不是Objective-C首创而且独有的特性,例如C#里边也有属性的概念,因此学过C#的朋友应该很容易就掌握Objective-C中的属性这个知识点。 1 ...

Ajkl
2012/11/25
0
0
Objective-C使用@dynamic和@synthesize

@dynamic 意思是由开发人员提供相应的代码:对于只读属性需要提供 getter,对于读写属性需要提供 getter 和setter。 @synthesize 意思是,除非开发人员已经做了,否则由编译器生成相应的代码...

千铭
2013/09/17
0
0
Objective-C Property 和 Synthesize

Objective-C中的@property、@synthesize及点语法都是与两个函数有关的,一是setter函数,另一个是getter函数 以前我们是这样来定义setter与getter函数的 @interface Dog:NSObject { int age;...

子非鱼你造么
2015/05/17
0
0
Objective C 的setter赋值函数视频基础提高课程(三)

腾讯视频 Objective C 的setter赋值函数 链接:http://dwz.cn/zH6nM 一、setter和getter的一般写法 setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C...

马洪伟
2015/01/05
0
0
Objective-c中@property和@synthesize的用法

@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方...

今日竹石
2014/01/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

sourcetree 离线免注册登录安装教程

Sourcetree是一个优秀的git可视化管理工具,深受开发者喜爱Sourcetree官网,但是在安装时需要谷歌账户登录,需要翻qiang才可以,此一点一直被人们所诟病。今天本教程就为大家提供离线免登陆安...

QQZZFT
13分钟前
0
0
使用 PostgreSQL 解决一个实际的统计分析问题

使用 PostgreSQL 解决一个实际的统计分析问题作者:老农民(刘启华)Email: 46715422@qq.com 之前有个朋友扔给我一个奇葩需求,他们公司之前做了一批问卷调查,全部都是统一格式的excel...

新疆老农民
16分钟前
0
0
TypeScript基础入门之高级类型的映射类型

转发 TypeScript基础入门之高级类型的映射类型 高级类型 映射类型 一个常见的任务是将一个已知的类型每个属性都变为可选的: interface PersonPartial {    name?: string;    age?...

durban
31分钟前
0
0
Dubbo源码分析(6):Dubbo内核实现之基于SPI思想Dubbo内核实现

SPI接口定义 定义了@SPI注解 package com.alibaba.dubbo.common.extension; import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.an......

郑加威
31分钟前
0
0
RxJS的另外四种实现方式(后记)—— 同时实现管道和链式编程

目录 RxJS的另外四种实现方式(序) RxJS的另外四种实现方式(一)——代码最小的库 RxJS的另外四种实现方式(二)——代码最小的库(续) RxJS的另外四种实现方式(三)——性能最高的库 Rx...

一个灰
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部