OC基础--关键字@property 和 @synthesize
一、@property关键字需要掌握的知识:
1.用在@interface中,用来自动生成setter和getter的声明
例:@property int age;--相当于执行了右边的代码-->-(void) setAge:(int) age; -(int) age;
二、@synthesize关键字需要掌握的知识:
1.用在@implementation中,用来自动生成setter和getter的实现
例:@synthesize age = _age;
2.注意:在 @synthesize age = _age; 中如果没有指定成员变量名,实现中默认访问的就是同名的成员变量
例: @synthesize age;//默认访问的就是age成员变量,而不是_age成员变量
如果age这个成员变量不存在,程序会在@implementation中自动生成一个私有的age变量
同理,如果指定的成员变量也不存在,程序也会在@implementation中自动生成一个私有的跟指定变量同名的成员变量
三、Xcode版本注意事项:
1.Xcode 4.4前:关键字@property 只是自动生成set方法和get方法的声明
2.Xcode 4.4后:关键字@property 将会自动生成set方法和get方法的声明和实现、增加一个_开头的成员变量
四、代码实例:
#import <Foundation/Foundation.h>@interface Car : NSObject
{int _wheels;//int _speed;
}
@property int wheels;
@property int speed;
@end@implementation Car
// 默认会访问wheels成员变量,如果这个成员变量不存在,自动生成一个私有的wheels变量
@synthesize wheels;// setter和getter会访问_speed成员变量,如果这个成员变量不存在,自动生成一个私有的_speed变量
@synthesize speed = _speed;- (NSString *)description
{return [NSString stringWithFormat:@"wheels=%d,_speed=%d", wheels, _speed];
}@endint main()
{Car *c = [[Car alloc] init];c.wheels = 4;c.speed = 250;NSLog(@"%@", c);//NSLog(@"轮子个数:%d", c.wheels);return 0;
}
OC基础--关键字@property 和 @synthesize相关推荐
- Objective-C 点语法 成员变量的作用域 @property和@synthesize关键字 id类型
点语法 1.利用点语法替换set方法和get方法 方法调用 Student *stu = [Student new]; [stu setAge : 18]; int age = [stu age]; ...
- 黑马程序员--Objective-C之--@property和@synthesize关键字
------IOS培训期待与您交流! ------- property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明.@synthe ...
- OC实例变量和属性-@synthesize与@property
Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject 4 { 5 // 实例变量命 ...
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- oc总结 --oc基础语法相关知识
m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...
- OC基础 代理和协议
OC基础 代理和协议 1.协议 (1)oc语言中得协议:一组方法列表,不需要我们自己实现,由遵守协议的类来实现协议所定制的方法. (2)协议的使用步骤:制定协议-->遵守协议-->实现协议 ...
- 2014.12.10 OC基础复习
oc是一种没有垃圾回收机制的语言,再没有打开arc的情况下,需要手动管理内存 @为关键字的开头,也是字符串的开头 @interface --@end 写对类的声明,包括对成员变量和方法的声明,@imp ...
- OC基础学习 调用方式
OC基础学习 调用方式 调用方法: C++里,送一个消息给对象(或者说调用一个方法)的语法如下: obj.method(argument); Objective-C则写成: [obj method: ...
- OC基础第四讲--字符串、数组、字典、集合的常用方法
OC基础第四讲--字符串.数组.字典.集合的常用方法 字符串.数组.字典.集合有可变和不可变之分.以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值:而可变字符串调用相应地方法后, ...
- OC基础回想(十二)协议
在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...
最新文章
- python两个不同变量相加_Python:是否可以链接属于两个不同类的两个变量?
- Android 对okhttp的封装
- pythonurllib标准_Python标准库学习笔记 urllib模块
- Go-项目结构和代码组织
- 调用父类方法而非直接设置父类属性
- ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)
- 安装Oracle提示OracleMTSRecoveryService 已经存在,解决方法
- php源码 学校版 cms,S-CMS学校建站系统PHP源码(含小程序) v5.0 bulid20201126
- 汇编语言学习之安装编译器及书籍选择
- python 进化树_Biopython之系统发育树(进化树)的绘制
- 【配准】2020年“基于深度学习的医学影像配准”期刊论文速览(PR,TMI,MIA)
- keychron机械键盘使用感受
- 有哪些 必装软件或者app
- php单位有哪些,css中的角度单位有哪些?
- 河南郑州—2018区块链传统行业创新峰会
- 基于人工兔优化算法的函数寻优和工程优化
- SUN 的JDO标准
- 隐藏删除 gitbook Published with GitBook 的方法
- Java中的length,length()和size()
- 1-Java面试题-基础篇
热门文章
- Windows 7下硬盘安装Ubuntu 14.10图文教程【硬盘安装】
- 《机器学习Python实践》第5章——数据导入
- GF4各波段太阳辐照度
- 夜间灯光数据下载(DMSP/OLS,NPP/VIIRS、珞珈一号网址)
- Python 使用while循环实现打印9x9乘法表
- delphi html 登录,delphi 几个实用的HTML解析函数
- MySQL创建视图的语法格式,MySQL如何创建视图
- Mac电脑Docker拉取Mysql报错?no matching manifest for linux/arm64/v8 in the manifest list entries
- Flutter实战之FlutterPlugin插件入门指南
- 阿里巴巴大规模应用 Flink 的实战经验:常见问题诊断思路