博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
@property和@synthesize
阅读量:5113 次
发布时间:2019-06-13

本文共 991 字,大约阅读时间需要 3 分钟。

//  @property和@synthesize--编译器特性,自动生成get、set方法

//成员变量

//int _age;

//get、set方法声明的快速实现

//@property int age 等价于

//- (void)setAge:(int)age;

//- (void)age;

 

//注意使用@property进行get、set方法进行声明的时候不要加上下划线

//@property int _age;

//加上下划线,get、set方法的声明就变成这样了

//- (void)set_age:(int)age;

//- (void)_age;

//这样使用点语法的时候就会出现问题了

//p.age 就会调用方法 [p setAge:10]或者 [p age];

 

//@synthesize 快速生成get 、set方法的实现

//出现一个问题

//int _age;

//int age;

//@property int age

//@synthesize age _age;//这样写的意思就是,给@property的声明实现方法

//然后访问成员变量 _age;

 

//build 编译

//简单的写法1

//@property int wheel,speed;

//@synthesize wheel = _wheel,speed = _speed;(成员变量没有声明会自动的生成)

 

//简单的写法最终版(Xcode4.4以后)

//@property 即声明get、set方法,也实现get、set方法,没有成员变量还会自动的生成

@property int age;//缺点是成员变量是私有的,子类不能访问

//如果想让子类能够访问,加上

//@protected

//int _age;

 

//@synthesize age 默认会访问 int age ;这个成员变量

//如果没有age,就会自动的生成@private int age;

 

//@property只能写在interface中

//@synthesize 只能写在 implementation中

 

//xcode 如果有了成员变量不会自动生成,如果有了set/get方法也不会自动生成

转载于:https://www.cnblogs.com/imChay/p/5590393.html

你可能感兴趣的文章
regsvr32简介
查看>>
升级到 .NET Core 2.1
查看>>
C#多线程交替赋值取值
查看>>
对Java前四章的感受
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>
密码学总结
查看>>
java学习第三天
查看>>
jq 通配符,模糊查询
查看>>
python目录
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>
Andriod小型管理系统(Activity,SQLite库操作,ListView操作)(源代码下载)
查看>>
在Server上得到数据组装成HTML后导出到Excel。两种方法。
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
jQuery Mobile笔记
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>