OC中对于属性的总结(@property)
在没有属性之前:
对成员变量进行改动都要用到设置器:setter来改动
Person *per =[[Person alloc] init];
对象通过设置器对成员变量内容进行修该
[per setName:@"你好"];
要通过訪问器:getter来进行取值
属性的出现 ,简化了代码
1.属性
属性是写在.h中
在XCode4.5之后,属性一共能够做了三件事:
1.声明了设置器:setter和訪问器:getter
2.实现了设置器和訪问器
3.声明了一个成员变量,成员变量命名会在属性名前面加一个下划线
(总结)
详细的数据存储还是有成员变量来完毕,属性值只是帮助程序猿完毕一些繁琐的工作,简化代码
属性用 @property 来表示
样例:比方定义一个学生类的年龄对象
首先创建一个学生类,之后直接用属性来创建年龄对象
在学生类的.h文件里:
@property NSInteger age;
这样一个年龄对象就建好了
一个属性完毕了在对象.h中的声明,完毕了setter,getter在.h中的声明,完毕了setter,getter在.m中的实现三件事
2.属性的属性
(1) 读写的控制: readonly和readwrite
- readonly:仅仅读:
设置之后,属性就没有setter,在设置了仅仅读之后,就不能够对成员变量进行改动了 - readwrite:读写:
能够进行訪问与读取
3.原子性的控制
在整个过程中系统通过原子性 atomic来监控实物在整个过程中偶遇没有完毕,可是对于我们来讲,我们仅仅是对数据进行简单的赋值,一般我们都会用nanatomic,不进行监控
// 通过原子性atomic来监控实物在整个过程中有没有完毕,可是一般来讲我们就是对数据的简单赋值,一般我们这部分用nonatomic
(atomic)
@property (atomic)NSString *sex;
(nonatomic)
@property(nonatomic)NSString *color;
4.语义设置
copy , assign , retain
1.retain一般用在对象类型, 比方我们自己写的类,还有数组NSArray中会用到
2.assgin 一般用在NSInteger和CGFloat中,由于他们在栈区,不须要内存管理,所以用assgin
3.copy 一般仅仅会用在字符串中
样例:
@property(nonatomic ,copy)NSString *color;
@property(nonatomic ,assign)NSInteger age;
@property(nonatomic ,assign)CGFloat score;
@property(nonatomic ,retain)NSArray *arr;
注意:
在XCode4.5版本号之前另一个关键词的定义
在.m文件里须要有一个关键词@sythesize才干实现setter和getter
格式 :关键词 属性名=成员变量名
@synthesize name = _name;
OC中对于属性的总结(@property)的更多相关文章
- OC中的属性、方法及内存管理
普通方法:关注(代表)对象可以”干什么”,过程中需要实例变量.-(void)show;输出 … 访问属性 属性:属性专门处理实例变量.(程序执行过程当中) 初始化方法:一创建对象(第一时间 ...
- Qt 中的属性系统(Property System)
21 人赞同了该文章 本节内容主要讲解我对 Qt 属性系统的理解.官方文档参考 The Property System. 如何理解"属性系统"这个概念? 一般我们说一个类有什么属性 ...
- OC 中的属性
自动合成 (autosynthesis) @property 语法,会做下面两件事情 自动生成存取方法 由编译器生成,编辑器里不会看到这些方法. 向类中添加适当类型的实例变量 在属性前加下划线,作为实 ...
- OC中成员属性 成员变量
比如用property声明一个变量属性 然后我们会为它用懒加载的方式重写get方法 然后我们在使用这个变量的时候,都是用self.itemArray,为什么这样用比较好呢,这是因为self.是对属性的 ...
- Objective-C中的属性机制
Objective-C 2.0中的属性机制为我们提供了便捷的获取和设置实例变量的方式,也可以说属性为我们提供了一个默认的设置器和访问器的实现.在学习OC中属性之前我们先要知道为什么要为变量实现gett ...
- OC中@property属性关键字的使用(assign/weak/strong/copy)
OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 ...
- Objective-C中属性及其特质@property、attribute
属性: 属性@property和属性attribute不同,@property在OC里有自己的一套专对实例变量的处理机制.attribute我们可以特指属性所具有或遵循的特质. 使用属性,编译器就会自 ...
- OC中属性及方法
1.声明式属性 a.实例变量 b.声明属性 自动生成setter/getter方法 .h ->@property 属性类型 属性名; .m ...
- OC中两个关键字的作用:@property和@synthesize
两个关键字的使用:@property和@synthesize 一.@property关键字这个关键字是OC中能够快速的定义一个属性的方式,而且他可以设置一些值,就可以达到一定的效果,比如引用计数的问题 ...
随机推荐
- Ajax学习总结(1)——Ajax实例讲解与技术原理
摘要:AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.AJAX 是一种用 ...
- HDU 4588 Count The Carries 数位DP || 打表找规律
2013年南京邀请赛的铜牌题...做的非常是伤心.另外有两个不太好想到的地方.. ..a 能够等于零,另外a到b的累加和比較大.大约在2^70左右. 首先说一下解题思路. 首先统计出每一位的1的个数, ...
- HDU 5281 Senior's Gun 杀怪
题意:给出n把枪和m个怪.每把枪有一个攻击力,每一个怪有一个防御力.假设某把枪的攻击力不小于某个怪的防御力则能将怪秒杀,否则无法杀死.一把枪最多仅仅能杀一个怪,不能用多把枪杀同一个怪.每杀一次怪能够得 ...
- EularProject 48: 利用数组求和
Problem 48 The series, 11+22+33+...+1010=10405071317. Find the last ten digits of the series, 11+22+ ...
- 验证list的底层数据结构
<STL源代码剖析>中,指出SGI STL的list底层数据结构式循环双向链表.而且在链表尾端留一个空白节点.让end指向它.因为是双向的,那么list的迭代器必须是Bidirection ...
- 次世代关卡制作流程:使用Unreal Engine 4
大型3D游戏的关卡(或者说副本.战场)的制作有一些难点,主要是: 要求制作人员有很好的空间感.包含总体布局.对象的比例关系:把握不好的话,不单影响美观.更影响玩家的体验: 关卡制作是一个比較综合的工作 ...
- JAVA File类 分析(二)
本章開始介绍UNIX文件系统. 文件系统是怎样管理文件的呢?那咱们要先文件的存储介质開始--磁盘 磁盘是计算机系统的一个硬件设备,文件系统为了可以管理磁盘.对其进行了三层抽象(本文全部内容均指UNIX ...
- unity 获取物体尺寸
unity3d中获得物体的size 以size的x方向为例 1:gameObject.renderer.bounds.size.x;//这个值的结果真实反应出有MeshRenderer这个组件的 ...
- javascript变量类型及作用域
javascript变量类型及作用域 一.简介 变量类型 ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型. 基本类型 基本类型指的是简单的数据段,5种基本数据类型:undef ...
- Spring 配置自动扫描原理说明
Spring利用IOC容器将所有的bean进行有秩序的管理维护,而实际项目中不可能在xml文件中创建bean,而是利用了Spring的组件自动扫描机制,通过在classpath自动扫描的方式把组件纳入 ...