ios-属性特性
来源:互联网 发布:游戏编程只会算法 编辑:程序博客网 时间:2024/06/06 12:20
属性的特性:为属性提供了一些关键字用以控制setter、getter的实现细节,这些关键字称为属性的特性(attribute);
2、读写性
1)readonly:只读状态,是告诉编译器,属性只生成getter方法,不生成setter方法;
2)readwrite:读写状态,是告诉编译器,属性既生成setter方法又生成getter方法,既有设置器,也有访问器,默认的读写特性;
3)setter=:指定属性生成的setter方法的名字;
4)getter=:指定属性生成的getter方法的名字。
@property (readwrite, setter=setname:, getter = getname) NSString *name;
原子性
1)atomic:原子特性,setter、getter方法在多线程访问下是绝对安全的,即setter、getter内部做了多线程访问处理。默认的原子特性。
2)nonatomic:非原子特性,settler、getter方法内部不会做多线程访问处理,仅仅是普通的setter、getter方法。
3)程序开发过程中,setter、getter会频繁使⽤,如果使⽤atomic需要 不断的对setter、getter加锁解锁以保证线程访问的安全,会⾮常占⽤系统资源,降低系统性能。声明属性时,通常使用nonatomic。
@property (nonatomic) NSString *name;
语义特性
1)如果属性是非对象类型(比如int、float等)属性的语义设置使用assgin;
2)如果属性是对象类型(比如NSString等)并且要保留这个对象的时候,属性的语义设置使用retain;
2、读写性
1)readonly:只读状态,是告诉编译器,属性只生成getter方法,不生成setter方法;
2)readwrite:读写状态,是告诉编译器,属性既生成setter方法又生成getter方法,既有设置器,也有访问器,默认的读写特性;
3)setter=:指定属性生成的setter方法的名字;
4)getter=:指定属性生成的getter方法的名字。
@property (readwrite, setter=setname:, getter = getname) NSString *name;
原子性
1)atomic:原子特性,setter、getter方法在多线程访问下是绝对安全的,即setter、getter内部做了多线程访问处理。默认的原子特性。
2)nonatomic:非原子特性,settler、getter方法内部不会做多线程访问处理,仅仅是普通的setter、getter方法。
3)程序开发过程中,setter、getter会频繁使⽤,如果使⽤atomic需要 不断的对setter、getter加锁解锁以保证线程访问的安全,会⾮常占⽤系统资源,降低系统性能。声明属性时,通常使用nonatomic。
@property (nonatomic) NSString *name;
语义特性
1)如果属性是非对象类型(比如int、float等)属性的语义设置使用assgin;
2)如果属性是对象类型(比如NSString等)并且要保留这个对象的时候,属性的语义设置使用retain;
3)如果属性是对象类型并且想要得到对象的副本,使用copy。
@class和import ".h"的区别
import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。此处一定要注意头文件循环引用的问题推荐两篇博文http://blog.csdn.net/honey_no_1/article/details/47090625 和http://blog.csdn.net/CNLF14/article/details/47777195
阅读全文
0 0
- ios-属性特性
- iOS 属性中strong,weak,assign,retain,copy等特性
- iOS 属性知识之为什么要使用copy特性
- c#:特性和属性
- 属性和特性
- 特性和属性
- 属性的特性
- 属性之特性 浅谈
- 017.retain 属性特性
- 017.retain 属性特性
- Objective-C属性特性
- Android属性动画特性
- JavaScript属性的特性
- Javascript 属性的特性
- Qt Quick属性特性
- ios weibo 第二天 设置导航栏属性,添加加号按钮, 新特性
- C#类特性和属性特性
- iOS 属性
- Rails 选择特定字段查询
- db2数据库常用的一些实用命令
- Android的普通通知和进度条通知
- canvas圆形百分比
- Android 蓝牙Ble通信
- ios-属性特性
- Android 计算方法运行时间
- Android中接口(Interface)的简单使用
- 网贷之家被爆问题频出,折射P2P排名乱象
- 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token
- Android Studio 出现Failed to open zip file的问题
- 使用迭代器辅助函数advance,distance,iter_swap
- LeetCode
- human-interface-guidelines_IOS人机交互指南_官方文档翻译_1.2概况_接口要点