一、@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相关推荐

  1. Objective-C 点语法 成员变量的作用域 @property和@synthesize关键字 id类型

    点语法 1.利用点语法替换set方法和get方法 方法调用 Student *stu = [Student new]; [stu setAge : 18]; int age = [stu age]; ...

  2. 黑马程序员--Objective-C之--@property和@synthesize关键字

    ------IOS培训期待与您交流! ------- property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明.@synthe ...

  3. OC实例变量和属性-@synthesize与@property

    Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject 4 { 5 // 实例变量命 ...

  4. OC基础15:内存管理和自动引用计数

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...

  5. oc总结 --oc基础语法相关知识

    m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...

  6. OC基础 代理和协议

    OC基础 代理和协议 1.协议 (1)oc语言中得协议:一组方法列表,不需要我们自己实现,由遵守协议的类来实现协议所定制的方法. (2)协议的使用步骤:制定协议-->遵守协议-->实现协议 ...

  7. 2014.12.10 OC基础复习

    oc是一种没有垃圾回收机制的语言,再没有打开arc的情况下,需要手动管理内存 @为关键字的开头,也是字符串的开头 @interface --@end 写对类的声明,包括对成员变量和方法的声明,@imp ...

  8. OC基础学习 调用方式

    OC基础学习 调用方式 调用方法: C++里,送一个消息给对象(或者说调用一个方法)的语法如下: obj.method(argument); Objective-C则写成: [obj method: ...

  9. OC基础第四讲--字符串、数组、字典、集合的常用方法

    OC基础第四讲--字符串.数组.字典.集合的常用方法 字符串.数组.字典.集合有可变和不可变之分.以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值:而可变字符串调用相应地方法后, ...

  10. OC基础回想(十二)协议

    在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...

最新文章

  1. python两个不同变量相加_Python:是否可以链接属于两个不同类的两个变量?
  2. Android 对okhttp的封装
  3. pythonurllib标准_Python标准库学习笔记 urllib模块
  4. Go-项目结构和代码组织
  5. 调用父类方法而非直接设置父类属性
  6. ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)
  7. 安装Oracle提示OracleMTSRecoveryService 已经存在,解决方法
  8. php源码 学校版 cms,S-CMS学校建站系统PHP源码(含小程序) v5.0 bulid20201126
  9. 汇编语言学习之安装编译器及书籍选择
  10. python 进化树_Biopython之系统发育树(进化树)的绘制
  11. 【配准】2020年“基于深度学习的医学影像配准”期刊论文速览(PR,TMI,MIA)
  12. keychron机械键盘使用感受
  13. 有哪些 必装软件或者app
  14. php单位有哪些,css中的角度单位有哪些?
  15. 河南郑州—2018区块链传统行业创新峰会
  16. 基于人工兔优化算法的函数寻优和工程优化
  17. SUN 的JDO标准
  18. 隐藏删除 gitbook Published with GitBook 的方法
  19. Java中的length,length()和size()
  20. 1-Java面试题-基础篇

热门文章

  1. Windows 7下硬盘安装Ubuntu 14.10图文教程【硬盘安装】
  2. 《机器学习Python实践》第5章——数据导入
  3. GF4各波段太阳辐照度
  4. 夜间灯光数据下载(DMSP/OLS,NPP/VIIRS、珞珈一号网址)
  5. Python 使用while循环实现打印9x9乘法表
  6. delphi html 登录,delphi 几个实用的HTML解析函数
  7. MySQL创建视图的语法格式,MySQL如何创建视图
  8. Mac电脑Docker拉取Mysql报错?no matching manifest for linux/arm64/v8 in the manifest list entries
  9. Flutter实战之FlutterPlugin插件入门指南
  10. 阿里巴巴大规模应用 Flink 的实战经验:常见问题诊断思路