1218.2——property关键字
由于我们定义的成员变量是私有的,所有外部是无法访问的,为了能够访问我们写set和get方法
但是由于代码量过于复杂冗长,引入了@property (声明)和 @synthesize(实现)
后来又简化成只有@property,而省略了@synthesize,自动生成
最后省略了成员变量改为属性,去掉了大括号,用@property属性一句话写完
@property (nonatomic,strong)NSString * name;
@property (nonatomic,assign)int age;
1.定义了一个属性,name
2.声明了set get方法
3.实现了setter getter方法
定义了一个吃面包的函数,在内部方法调用内部属性的时候,要用_name,因为@synthesize虽然省略了,但是该实现的还是实现了
_name =[self name] =self.name
-(void)eat:(Bread *)aBread{
NSLog(@"%@吃掉了 %@ 品种的面包",_name,aBread.style);
}
main中赋值和调用的时候有两种方式
1. wq.name = @"Damon";
NSLog(@"%@",wq.name);
2. [wq setAge:22];
NSLog(@"%d",[wq age]);
关键字
atomic 原子操作 线程安全 有枷锁解锁机制 安全 (默认)
nonatomic 非原子操作 线程不安全 速度快 效率高 (一般使用)
strong 声明一个非自己创建的对象的所有权
如果创建所有权之后 放弃只会放弃所有权,而不会释放内存 所有的都放弃所有权之后 系统会自动释放内存
防止A创建物体后B使用,A放弃了之后,B就再也找不到了这种情况。
retain 和strong一样
weak 只使用而不产生所有权
copy 重新复制对象 好处在于和原来的对象脱离了关系不受其影响 坏处在于内存加大了
与Strong的区别就是是否脱离出来
assign 对于C语言的基本数据类型用assign
readonly 只读 相当于只提供getter方法
readwrite 读写 默认
1218.2——property关键字的更多相关文章
- OC基础--内存管理中的@property关键字以及其参数
在上一篇博客中整理的内存管理,管理类的代码量会感觉很大,而且如果对象多的话,感觉到代码有点冗余.下面就介绍Xcode中为我们自动生成内存管理代码的关键字@property 例如:在Person这个类中 ...
- @property 关键字的区别详解
@property 关键字的区别详解:assign 与weak. __block 与 __weak.strong 与copy的区别 字数911 阅读269 评论2 喜欢8 在开发中经常使用属性@pro ...
- iOS Property 关键字的使用
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作. atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全 ...
- OC点语法介绍和使用以及@property关键字
使用"点语法" Person *p =[Person new]; //点语法 //对象.属性名 //注意,此时 (p.age)并不是直接方法实例对象 //而是xcode可能到点语法 ...
- IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic、 @synthesize、@property、@dynamic
IOS 关键字self,super,copy, retain, assign , readonly , readwrite, nonatomic. @synth ...
- OC基础--关键字@property 和 @synthesize
一.@property关键字需要掌握的知识: 1.用在@interface中,用来自动生成setter和getter的声明 例:@property int age;--相当于执行了右边的代码--> ...
- Objective-C 【@property和@synthesize关键字】
------------------------------------------- @property关键字的使用及注意事项 直接上代码和注释了! // //@property关键字的使用 //① ...
- OC中两个关键字的作用:@property和@synthesize
两个关键字的使用:@property和@synthesize 一.@property关键字这个关键字是OC中能够快速的定义一个属性的方式,而且他可以设置一些值,就可以达到一定的效果,比如引用计数的问题 ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
随机推荐
- Arbitrage HDU
Arbitrage Time Limit: 2000/1000 MS (Java/Others) Mem ...
- clearInterval()与setInterval()的应用
1.setInterval()按照一定的周期调用函数2.clearInterval()取消setInterval()的周期调用 例如:图片轮播中的clearInterval()与setInterval ...
- 简单的thinkPHP3.2运行实例。
在上一篇的环境基础下. 我们用zendstudio12.5版本编写我们的代码.具体的下载方式在这里就不多做注明了.自己百度就可以搞定. 首先我们用zendstudio12.5 导入我们从网上随处都可以 ...
- ASP转PHP手记
打算将动易网站管理系统移植到PHP环境中,寻寻觅觅了很多PHP内容管理网站,发现网上有动易转PHPCMS的代码,所以就拿定注意用PHPCMS的在google上找到一转换程序,动手做来还成功了,现将此次 ...
- 关闭并且禁用ECSHOP缓存
ECSHOP的缓存机制从一定程度上可以减少ECSHOP反复读取数据库的几率,从而一定程度上降低服务器负担,提高访问速度.但是启用缓存机制,对一些新手站长也有不利的地方.我就遇到很多新手站长经常问,我明 ...
- 网页中flash背景透明
<embed src="文件路径" width="长度" height="宽度" quality="high" t ...
- iOS AVAudioPlayer 提示音
NSString *urlPath = [[NSBundle mainBundle] pathForResource:@"" ofType:@""]; NSUR ...
- bzoj 3238 Ahoi2013 差异
3238: [Ahoi2013]差异 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2357 Solved: 1067[Submit][Status ...
- HTTP 协议简介
HTTP 协议简介 博客分类: acl开发--HTTP协议篇 网络协议http协议 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是 ...
- 163k地方门户网站系统自动审核信息脚本
本代码实现对163k地方门户网站系统发布信息的自动审核,以及对内容中链接全过滤 软件安装 Python 安装 http://www.python.org/download/ pymssql安装 htt ...