在没有属性之前:

对成员变量进行改动都要用到设置器: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

  1. readonly:仅仅读:

    设置之后,属性就没有setter,在设置了仅仅读之后,就不能够对成员变量进行改动了
  2. 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)的更多相关文章

  1. OC中的属性、方法及内存管理

    普通方法:关注(代表)对象可以”干什么”,过程中需要实例变量.-(void)show;输出 … 访问属性    属性:属性专门处理实例变量.(程序执行过程当中)    初始化方法:一创建对象(第一时间 ...

  2. Qt 中的属性系统(Property System)

    21 人赞同了该文章 本节内容主要讲解我对 Qt 属性系统的理解.官方文档参考 The Property System. 如何理解"属性系统"这个概念? 一般我们说一个类有什么属性 ...

  3. OC 中的属性

    自动合成 (autosynthesis) @property 语法,会做下面两件事情 自动生成存取方法 由编译器生成,编辑器里不会看到这些方法. 向类中添加适当类型的实例变量 在属性前加下划线,作为实 ...

  4. OC中成员属性 成员变量

    比如用property声明一个变量属性 然后我们会为它用懒加载的方式重写get方法 然后我们在使用这个变量的时候,都是用self.itemArray,为什么这样用比较好呢,这是因为self.是对属性的 ...

  5. Objective-C中的属性机制

    Objective-C 2.0中的属性机制为我们提供了便捷的获取和设置实例变量的方式,也可以说属性为我们提供了一个默认的设置器和访问器的实现.在学习OC中属性之前我们先要知道为什么要为变量实现gett ...

  6. OC中@property属性关键字的使用(assign/weak/strong/copy)

    OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 ...

  7. Objective-C中属性及其特质@property、attribute

    属性: 属性@property和属性attribute不同,@property在OC里有自己的一套专对实例变量的处理机制.attribute我们可以特指属性所具有或遵循的特质. 使用属性,编译器就会自 ...

  8. OC中属性及方法

    1.声明式属性    a.实例变量    b.声明属性        自动生成setter/getter方法        .h ->@property 属性类型 属性名;        .m ...

  9. OC中两个关键字的作用:@property和@synthesize

    两个关键字的使用:@property和@synthesize 一.@property关键字这个关键字是OC中能够快速的定义一个属性的方式,而且他可以设置一些值,就可以达到一定的效果,比如引用计数的问题 ...

随机推荐

  1. CF(438D) The Child and Sequence(线段树)

    题意:对数列有三种操作: Print operation l, r. Picks should write down the value of . Modulo operation l, r, x. ...

  2. Java编程思想(四) —— 复用类

    看了老罗罗升阳的专訪,不由自主地佩服,非常年轻,我之前以为和罗永浩一个级别的年龄.也是见过的不是初高中编程的一位大牛之中的一个,专訪之后.发现老罗也是一步一个脚印的人. 别说什么难做,做不了.你根本就 ...

  3. hdu5024

    思路要开阔些,或者说要转化一下思路,别太死 把每一个点当拐点,爆一边就能够.用记忆化搜索也行.都不会超时 #include<bits/stdc++.h> using namespace s ...

  4. vim基础学习之自动补全功能

    本章我们学习自动补全功能1.自动补全优先从当前的编辑区获得补全列表例如:我们写下如下内容 aaaaa aabbb aaab 当我们再次输入aa,然后我们按下Tab的时候,会弹出一个包含 aaaaa a ...

  5. Ubuntu 12.04使用演示

    今年年初,发布了Ubuntu 12.04(代号Precise Pangolin),但正式版预计将于2012年的4月底发布,作者对最新版本的ubuntu做了试用,先将操作视频与大家分享.更多内容请关注本 ...

  6. js闭包注意事项

    /关于闭包使用应该注意的 // 1 闭包在父函数每次调用都会产生不同的闭包 // 2 闭包中子函数使用父函数变量的变量不是复制 是引用 // 3 闭包在循环中使用

  7. 运动识别之HOJ3D和HMM

    http://cvrc.ece.utexas.edu/Publications/Xia_HAU3D12.pdf   View Invariant Human Action Recognition Us ...

  8. 禁止input输入空格

    仅适用于PC端:$("input").attr("onKeypress","javascript:if(event.keyCode == 32)eve ...

  9. 解决Docker容器内访问宿主机MySQL数据库服务器的问题

    懒得描述太多,总归是解决了问题,方法简要记录如下,虽然简要,但是完整,一来纪念处理该问题耗费的大半天时间,二来本着共享精神帮助其他遇到该问题的哥们儿,当然这个方法并不一定能解决你们的问题,但是多少能提 ...

  10. OpenCASCADE Job - 上海地目