第三讲:属性,点语法
来源:互联网 发布:优尼凯珠宝软件使用 编辑:程序博客网 时间:2024/05/17 01:07
第三讲:属性,点语法* setter,getter* 属性* 属性的特性* 点语法* 综合练习(分数)一 setter,getter* setter: 在OC中为单一变量赋值的方法称为setter方法(设置器).* getter: 在OC中,读取实例变量值的方法称为getter方法(访问器).OC里规定了setter,getter书写格式:举例:setter方法: -(void)setAge:(NSInteger)age;* 注意: set + 实例变量名(首字母大写),忽略下划线.getter方法:-(NSInteger)age;* 注意: 返回值类型与实例变量类型一致.方法与实例变量名相同,忽略下划线.二 属性* Objective-C 2.0定义对的语法,提供setter,getter方法的默认实现.在一定程度上简化程序代码,并且提高程序的安全性* 属性的定义:1. 属性的声明: 在.h文件中使用@property声明属性.2. 以实例变量_name为例:* 属性的声明:@property NSString *那么;相当于在@interface中声明了两个方法* setter方法:-(void)setName:(NSString *)name;* getter方法:-(NSString *)name;* 属性的实现:1. 在.m文件使用@synthesize实现属性2. 以实例变量_name为例:@synthesize name = _name;实现声明属性: @synthesize name指定生成的setter和getter方法内部操作的实例变量相当于在@implementation中实现了1. setter方法-(void)setName:(NSString *)name;{ _name = name;}2. getter方法:-(NSString *)name;{ return _name;}3. @synthesize在类的实现部分在Xcode4.5以后的版本中.@synthesize可以程略,只使用@property声明属性即可.在默认情况下,当没有实现setter和getter方法时,通过@synthesize可以自动生成标准的setter和getter方法.* 属性和实例变量; 属性的作用是生成setter和getter方法的实现. 如果方法内部造作的实力变量未定义,系统会自动生成一个_属性名的实例变量,但是生成的实例变量是可见度私有的,子类不可访问 一旦同时重写了setter和getter方法,并且没有实现@synthesize, @synthesize就不再生成实例* 属性的特性: Objective-C提供属性的目的是为了简化代码.为属性提供了一些关键字用以控setter,getter的实现细节,这些关键字我们称为属性的特性(attribute).1. 读写性控制:(readonly,readwrite,setter=,getter=)2. readonly: 只读状态,是告诉编译器,属性只生成getter方法,不生成setter方法3. readwrite; 读写状态,是告诉编译器,属性只生成setter方法又生成getter方法,既有设置器也有访问器,默认的读写特性4. setter=: 指定属性生成的setter方法的名字5. getter=: 指定属性生成的getter方法的名字* 属性的特性—原子性1. 原子性控制:nonatomic atomic2. atomic: 原子特性,setter,getter方法在多线程访问下是绝对安全的,即setter,getter内部做了多线程访问处理.默认的原子特性3. monatomic: 非原子特性.setter,getter方法内部不会做多线程访问处理,仅仅是普通的setter,getter方法.4. 使用: 声明属性时,通常使用nonatomic,某些属性需要线程安全的时候,才会定义为atomic 例如: @property (nonatomic) NSString *name;* 属性的特性—语义特性1. 如果属性是非对象类型(int , float) 属性的语义设置使用assign.2. 如果属性是对象类型( NSString )属性的语义设置使用retain.3. 如果属性是对象类型并且想得到对象的副本,使用copy,* 点语法:1. 只要符合系统默认setter,getter书写格式的方法都可以使用点语法.例如:实例变量:_namesetter方法:[person setName:@“Lily”];点语法:person.name = @“Lily”;getter方法:NSString *string = [person name];点语法:NSString *string = person.name;属性是一对getter,setter方法,点语法是属性的另一种调用格式
0 0
- 第三讲:属性,点语法
- OC基础第八讲:属性 和点语法
- OC学习第三章 点语法 属性 继承 多态
- scala第三讲:基本语法
- 属性与点语法
- 属性,Property,点语法
- 属性以及点语法
- OC属性、点语法
- 点语法、属性
- 点语法访问属性
- 属性、点语法
- 第三十五讲 LINQ 语法(二)
- 第二讲:Obj-C 点语法
- 属性,点语法,实例变量
- iOS点语法@property属性
- 08 属性 点语法 KVC
- OCday4 属性, 点语法, KVC
- OC-----属性及点语法
- jquery插件编写
- open vpn
- C++动态链接库测试实例
- .Net实用网页抓取
- 【CDH5】-002Cloudera Manager介绍和安装
- 第三讲:属性,点语法
- 百宝云语法变量与常量新手教程
- 工作环境搭建(4) - CentOS7安装工作用的软件包
- 如何在AngularJS中消除闪烁
- 1049 数据片段和
- libexpat.so.0: cannot open shared object file: No such file or directory
- 门面模式(Facade)(外观模式)—向养牛场送货
- C++之编码实现ping的功能
- JS文件读写