文档章节

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

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

对于 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
博文 246
码字总数 95636
作品 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
记录一下iOS开发中琐碎的点点_3

UIWindow 正常情况下, 一个应用中只有一个UIWindow对象, 但是实际上iOS应用是支持多个UIWindow对象的. UIWindow的作用: 作为容器,包含app所要显示的所有视图 传递触摸消息到程序中view和其他...

hell03W
2016/04/26
43
0
Objective-C中的@property和@synthesize用法

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

张志浩
2012/11/30
0
0
iOS:属性、修饰词(内存管理) 及其对应成员变量 、ARC

------------早期GCC版本------------ --@property A作用就是让编译器在h文件声明A 的setter/getter方法; --@synthesize A作用就是让编译器在m文件生成A 的setter/getter方法;(如果自己实现...

北方人在上海
2016/01/11
49
0
iOS成员属性和成员变量的区别

一、@property 和@synthesizer 在objective-c 1.0中,我们为interface同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 在o...

朝雨晚风
2016/08/12
0
0
Object-c @Property

http://blog.csdn.net/dqjyong/article/details/7668601(原博客) 以下是对原博客的整理 导航: 读写属性:(readwrite/readonly)以及(getter=name)、(setter=name) setter语意:(assig...

gaoios
2014/01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
32分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
42分钟前
2
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
48分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
522
6
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
7
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
15
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部