Objective-C属性
来源:互联网 发布:中国网络安全部队 编辑:程序博客网 时间:2024/06/16 02:12
一.属性(描述类的特征)
1.属性是Objective-C 2.0定义的语法,为实例变量提供了setter和getter方法的默认实现,能在一定程度上简化代码,增强实例变量的访问安全性.
2,属性的定义
2.1.属性的声明: 使用@property声明属性,相当在@interface中声明了两个方法(setter和getter),如:@property (NSString *)name;
2.2.属性的实现: 使用@synthesize实现属性,相当于在@implementation中实现了setter和getter这两种方法,如:@synthesize name = _name;
二.属性的属性
1.为属性提供了一些关键字用以控制setter、getter的实现细节,这些关键字我们称之为属性的属性(attri),共有三大类的attribute.
三大类attribute:
第一大类:读写控制
读写控制包括:
readonly: readonly告诉编器,之只声明getter方法,无setter方法 readwrite:告诉编译器,即声明setter方法也声明getter方法
第二大类:原子性控制:
atomic:setter、getter方法在多线程访问下是绝对安全的,即setter、getter内部做了多线程访问处理.原子性控制的默认设置是atomic;
nonatomic:setter、getter内部不会做多线程访问处理
程序开发过程中,setter、getter处处都在⽤用,如果使⽤用atomic,需要不断 的对setter、getter加锁解锁以保证线程访问安全,会很占⽤用系统资源,降低系统性能.
第三大类:语义设置(assign,retain,copy)
assign:setter、getter内部实现是直接赋值.
retain:setter、getter的内部会做内存优化.
copy:setter、getter的内部也会做内存优化
如果属性是非对象类型(比如int,float等)属性的语义设置使用assign,
如果属性是对象类型(比如NSString,NSArray等),属性设置为retain,
如果属性是对象类型并且想得到参数的copy,使用copy关键字
三.点语法
点语法提供了一种快捷的访问方式,凡符合系统默认setter、getter书写格式的方法都可以使用点语法,属性是一对getter、setter方法,点语法是属性的另一种调用格式.
四.KVC(key-value-coding,即键值编码)
KVC是一种间接访问实例变量的方法.
key:键没用于标识实例变量
value:实力变量对应的值
修改值:
setValue:forKey:
setValue:forKryPath:
setValue:forUndefinedKey:
setValuesForKeysWithDictionary:
获取值:
valueForkey
valueForKeyPath:
valueForUndefinedKey:
注意:当key值不存在的时候,会执行setValue:forUndefinedkey:
系统默认实现是抛出一个异常.
0 0
- Objective-C属性介绍
- Objective-C属性介绍
- Objective-C属性介绍
- Objective-C 方法、属性
- Objective-C 方法、属性
- Objective-C 方法、属性
- Objective C 属性
- Objective-C语言:属性
- Objective-C属性介绍
- Objective-C:属性说明
- Objective-C:属性
- Objective-c的属性
- Objective - C 8. 属性
- [objective-C] 07.属性
- Objective-C 属性详解
- Objective-C 变量属性
- Objective-C中的属性
- Objective C属性
- BZOJ 1605 [Usaco2008 Open]Crisis on the Farm 牧场危机 DP
- Spring整合Mybatis
- iOS 自定义TabBarController
- 哈希表 之 接入与身份认证技术概述
- AJAX理论知识
- Objective-C属性
- NYOJ 915 +-字符
- 最大权闭合图
- 计算机网络常考知识点
- ubuntu安装Jenkins
- 创建一个Spring的HelloWorld程序
- The difference between film faced plywood and wood I joist beam
- Leetcode#62||Unique Paths
- vijos - P1447开关灯泡 (大数模板 + 找规律 + 完全数 + python)