@property是一个属性访问声明,扩号内支持以下几个属性:1,getter=getterName,setter=setterName,设置setter与getter的方法名2,readwrite,readonly,设置可供访问级别2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题3,retain,setter方法对参数进行release旧值再r
转载 2013-05-02 11:46:00
88阅读
2评论
nonatomic与atomic nonatomic 非线程安全的,适合内存小的移动设备,内部不会加锁。 atomic 线程安全的,需要消耗大量的资源,内部会对setter方法加锁 开发中的建议: 1,所有的属性都声明为 nonatomic (如果不声明,默认是atomic) 2,尽量避免多线程抢夺同一资源 3,尽量将加锁,资源抢夺的业务逻辑交给服务端处理,减少移动客户端的压力。
原创 2021-07-02 15:38:58
252阅读
nonatomic  非原子性.  在多线程下不安全.但是目前我们写的大多数程序都是 单线程的.atomic       原子性       在多线程下安全.但是耗费的资源多.  其实就是 加锁. 比如在程序中有两个 对象 访问 同一块地方. 存在先后的问题. 一个对象先访问了一块内存.会加锁.另一个对象看到后 会等待 或者 使用别的内存地址.用完后 解锁. 然
原创 2022-12-09 14:53:51
43阅读
// // Person.h #import #import "Room.h" #import "Car.h" #import "Dog.h" @interface Person : NSObject { Room *_room; Car *_car; Dog *_dog; } /* - (void)setRoom:(Room *)room; - (void)se...
转载 2017-08-25 14:18:00
89阅读
2评论
如果这个property是 BOOL on, 那么Objc默认创建的 setter 为: - (void)on:(BOOL)setOn { } getter 为: - (BOOL)on { return on; } 但是你可以手动更改 setter 和 getter 方法, 就像上面的: getter = xxxOn 的话, getter 就变为: - (BOOL)xxxOn ...
原创 2022-08-06 00:44:50
91阅读
atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。      a
原创 2014-10-21 22:20:31
64阅读
nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。 (atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所 以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。)assign:简单赋值,不更改索引计数对基础数据类型 (NSInteger)和C数据类型(int,float,double,char, 等)copy:建立一个索引计数为1的对象,然后释放旧对象 对NSStringre
转载 2012-03-01 10:05:00
64阅读
2评论
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSString之 后,地址为0×2222,内容相同,新的对象
转载 精选 2014-07-25 00:59:40
383阅读
nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。                    (atomic是Objc使用的一种线
转载 精选 2011-07-19 11:27:20
1090阅读
1评论
摘要 atomic和nonatomic区别用来决定编译器生成的getter和setter是否为原子操 作。atomic提供多线程安全,是描述该变量是否支持多线程的同步访问,如果选择了atomic 那么就是说,系统会自动的创建lock锁,锁定变量。nonatomic禁止多线程,变量保护,提高性能。 a
转载 2016-09-09 17:53:00
81阅读
2评论
===== 最后转载下关于@property(*)括号中的属性内容介绍 =====atomic: 原子操作(原子性是指事务的一个完整操作,操
转载 2023-06-09 06:20:09
89阅读
的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。例如:@property (nonatomic,
原创 2022-12-01 15:11:47
224阅读
copy:建立一个索引计数为1的对象,然后释放旧对象 对NSString 对NSString 它指出,在赋值时使用传入值的一份拷贝。拷贝工作由copy方法执行,此属性只对那些实行了NSCopying协议的对象类型有效。更深入的讨论,请参考“复制”部分。 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 对
原创 2013-01-03 20:46:00
1295阅读
copy与retain:1、copy其实是建立了一个相同的对象,而retain不是;2、copy是内容拷贝,retain是指针拷贝;  3、copy是内容的拷贝 ,对于像NSString,的确是这样,但是如果copy的是一个NSArray呢?这时只是copy了指向array中相对应元素的指针.这便是所谓的"浅复制".4、copy的情况:NSString *newPt = [pt
原创 2014-08-12 14:11:02
599阅读
在我们开发iOS程序时,常常会遇到:property 和synthesize,以前很懒没有仔细去理解,只是看了看别人写的书,觉得挺容易的(在这里我不得不说,现在很多本土出的土书,尤其是早期的2009年,写的是真乱,误人子弟),所以今天有时间,自己试验了一番,希望和大家讨论。property,他可以提供的功能有:提供成员变量的访问方法的声明、控制成员变量的访问权限、控制多线程时成员变量的访问环境 )
原创 2014-12-21 13:43:44
524阅读
://baike.baidu.com/view/5028218.htmretain和copy的区别原来简单解释过属性定义(Property),并且提起了简单的retain,copy,assign的区别。那究竟是有什么区别呢?assign就不用说了,因为基本上是为简单数据类型准备的,而不是N... Read More
转载 2014-02-03 12:51:00
63阅读
2评论
转自:http://yuanshoupeng2005.blog.163.com/blog/static/68235027201235113952886/http://baike.baidu.com/view/5028218.htmretain和copy的区别原来简单解释过属性定义(Property),并且提起了简单的retain,copy,assign的区别。那究竟是有什么区别呢?assign就不用说了,因为基本上是为简单数据类型准备的,而不是NS对象们。Retain vs. Copy!!copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象
转载 2014-01-21 17:08:00
117阅读
2评论
都是用于修饰@property声明的变量 assign:用于非oc对象类型,表示直接赋值(默认值) retain:用于mrc中,用于类属性中有oc对象的情况,表示先推断赋值的对象是否和实例对象变量的值相等。 若不相等则先retain在赋值。(即release旧值,retain新值,用于修饰对象) r
转载 2018-01-14 10:05:00
78阅读
2评论
://baike.baidu.com/view/5028218.htmretain和copy的区别原来简单解释过属性定义(Property),并且提起了简单的retain,copy,assign的区别。那究竟是有什么区别呢?assign就不用说了,因为基本上是为简单数据类型准备的,而不是N... Read More
转载 2014-02-03 12:51:00
138阅读
2评论
nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。                    (atomic是Objc使用的一种线程保护技
转载 精选 2015-01-06 23:21:00
797阅读
  • 1
  • 2
  • 3
  • 4
  • 5