您的位置:首页 > 运维架构

@property在内存管理中的参数问题

2015-08-15 21:46 525 查看
//
//  Created by wanghy on 15/8/14.
//
//
/*

retain : release旧值,retain新值(用于OC对象),要配合nonatomic使用。
assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型)
copy   : release旧值,copy新值(一般用于NSString *)

控制需不需生成set方法
readwrite :同时生成set方法和get方法(默认)
readonly  :只会生成get方法

多线程管理
atomic    :性能低(默认)
nonatomic :性能高(为iOS系统开发软件建议使用,为mac开发软件可以使用atomic)

*/

#import <Foundation/Foundation.h>

@class Car;

@interface Person : NSObject

//property 的 参数没有顺序要求,nonatomic,性能较高,一般用于  ios 开发,而atomic一般用语Mac开发。
@property(nonatomic,retain) Car *  car1;

@end


原子性atomic对属性加锁, 多线程下县城安全, 默认选项
nonatomic对属性不加锁, 多线程访问下不安全, 但速度快
读写性readwrite生成 getter 和 setter 方法, 默认选项
readonly只生成 getter 方法
set 方法处理assign直接赋值, 默认值
retain先 release 原来的值, 在 retain 新值
copy先 release 原来的值, 再 copy 新值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: