文档章节

IOS语法 @property里的assign,copy,retain的区别

love丁小南
 love丁小南
发布于 2014/04/20 17:20
字数 382
阅读 764
收藏 1

@property(nonatomic,copy)NSString* str;

这里的assign copy retain的区别:

assign:这个是简单赋值,不更改引用索引计数(reference counting);

copy:建立索引计数为一的对象,然后释放旧对象;

retain:释放旧对象,将旧对象的值赋予输入对象,再提高输入对象的引用索引计数;

-retain的实际语法:

-(void)setName(NSString*)newName

{

  if(name!=newName)

{

  [name release];

 name=[newName retain];

name的引用计数has been bumped up by 1;

}

}

assign :是对oc基础数据类型(CGRect,CGPoint)和C数据类型(float int);

copy:是对字符串NSString;

retain:是对其他NSObject 和其子类;

atomic是oc使用的一种线程保护技术,是为了防止在写未完成的时候被其他线程读取,造成数据错误,而这种机制是很耗资源的,在iphone这小型设备上如果没有使用多线程之间的通讯,那么使用nonatomic是一个非常好的选择

注:

oc的内存管理,第一:retain copy都是在手动内存管理中,赋值oc对象常用的防止内存泄露的方法,当A 要赋值给B时,A完成赋值操作后,将自己release,而B则将自己原持有的对象地址release,并持有A的对象及引用计数,这样就保证两个数据块的引用计数始终为1或0,程序中最后一位引用者release时,才能保证这块内存被很好的释放;




© 著作权归作者所有

共有 人打赏支持
love丁小南
粉丝 0
博文 2
码字总数 998
作品 0
运城
程序员
iPhone开发之深入浅出 (2) — ARC之@property使用

上一回我们学到了一些ARC的基本概念,这一次我们来看看ARC对@property的使用规则有何影响。 所有者属性 我们先来看看与所有权有关系的属性,关键字间的对应关系。 属性值 关键字 所有权 stro...

小小贝
2012/12/24
0
0
【iOS】定义@property时常用的修饰词介绍

iOS编程中,定义成员变量常用格式如下: 常用的修饰词有atomic,nonatomic,copy,assign,strong,weak,readonly,readwrite等。面试中也会常常被问到这些修饰词的含义及其之间的区别,其本...

浅浅青丘
06/13
0
0
Objective-c中@property和@synthesize的用法

@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方...

今日竹石
2014/01/21
0
0
Objective-C中的@property和@synthesize用法

@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方...

张志浩
2012/11/30
0
0
OC语言自学《十一》---- OC(内存管理知识总结)

一、retain、release retain方法给对象的引用计数器+1 release方法给对象的引用计数器-1 retain方法会返回对象本身,release方法没有返回值 dealloc方法 当一个对象要被回收的时候会被调用 ...

罗眯眯
2014/04/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
36分钟前
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
47分钟前
0
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
0
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部