IOS中级篇——何时使用copy,strong,weak,assign关键字 定义属性

?

父类指针可以指向子类对象

?

//定义block别名。

typedef void (^LYItemOption)();

@interface LYItemArrow : LYItem
@property(nonatomic,strong) Class desController;

@property(nonatomic,copy) LYItemOption option;

?

?

1.strong :除NSString\block以外的OC对象

? @property(nonatomic,strong) NSArray? *<#model#>;

2.weak:各种UI控件(但不是绝对,也有控件要使用strong属性的)

? [email protected] (nonatomic,weak) UIButton *button;

3.assign:CGFloat,NSInteger等基本数据类型、枚举、结构体(非OC对象)

? [email protected](nonatomic,assign) CGFloat <#model#>;

4.copy:

?????copy : 创建的是不可变副本(如NSString、NSArray、NSDictionary)

?????mutableCopy :创建的是可变副本(如NSMutableString、NSMutableArray、NSMutableDictionary)

? @property(nonatomic,copy)NSString *<#model#>;

[email protected]内存管理策略的选择

?1.非ARC

? 1> copy : 只用于NSString\block

? 2> retain : 除NSString\block以外的OC对象

? 3> assign : 基本数据类型、枚举、结构体(非OC对象),当2个对象相互引用,一端用retain,一端用assign

?2.ARC

? 1> copy : 只用于NSString\block

? 2> strong : 除NSString\block以外的OC对象

? 3> weak : 当2个对象相互引用,一端用strong,一端用weak

? 4> assgin : 基本数据类型、枚举、结构体(非OC对象)

时间: 2024-08-09 02:59:39

IOS中级篇——何时使用copy,strong,weak,assign关键字 定义属性的相关文章

ios OC 关键字 copy,strong,weak,assign的区别

一.先介绍 copy.strong.weak 的区别,如代码所示 @property(copy,nonatomic)NSMutableString*aCopyMStr; @property(strong,nonatomic)NSMutableString*strongMStr; @property(weak,nonatomic)NSMutableString*weakMStr; @property(assign,nonatomic)NSMutableString*assignMStr; NSMu

ios中strong, weak, assign, copy

copy 和 strong(retain) 区别 1. http://blog.csdn.net/itianyi/article/details/9018567 大部分的时候NSString的属性都是copy,那copy与strong的情况下到底有什么区别呢? 比如: @property (retain,nonatomic) NSString *rStr; @property (copy, nonatomic)   NSString *cStr; - (void)test: { NSMutabl

对于atomic nonatomic assign retain copy strong weak的简单理解

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作 1)atomic 设置成员变量的@property属性时,atomic是默认值,提供多线程安全 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic后setter函数会变成下面这样: {lock} if (property != newValue) { [property release]; property = [newValue retain]; } {unlock} 2)n

atomic nonatomic assign retain copy strong weak 介绍

atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作.         atomic 设置成员变量的@property属性时,默认为atomic,提供多线程安全. 在多线程环境下,原子操作是必要的,否则有可能引起错误的结果.加了atomic,setter函数会变成下面这样:                        {lock}                                if (property != newValue) {    

strong,weak,assign,copy,的用法和区别

stong和weak用来修饰指针的 strong强指针;\强引用,对象,ios5以前叫retain weak弱指针\若饮用,,UI控件,代理,iOS5以前叫weak copy:字符串,复制    深复制\浅复制 @property copy\weak\strong\assign\retain weak(assign):代理\UI控件*strong(retain):其他对象(除代理,UI控件\字符串以外的对象)copy :字符串assign:非对象类型(基本数据类型init\float\BOOL\

学习IOS开发UI篇[email&#160;protected]中strong,weak参数的设定及runloop机制

[email protected]的参数说明 ======================================== ARC是苹果为了简化程序员对内存的管理,推出的一套内存管理机制 使用ARC机制,对象的申请和释放工作会在运行时,由编译器自动在代码中添加retain和release 1> strong:强指针引用的对象,在生命周期内不会被系统释放 在OC中,对象默认都是强指针 2> weak:弱指针引用的对象,系统会立即释放 弱指针可以指向其他已经被强指针引用的对象 @propert

iOS中属性 (nonatomic, copy, strong, weak)的使用 By hL

以下内容来自Stackflow的详解 1.Nonatomicnonatomic is used for multi threading purposes. If we have set the nonatomic attribute at the time of declaration, then any other thread wanting access to that object can access it and give results in respect to multi-th

iOS--合理定义对象的引用类型strong/weak/assign/copy

在ios中一定要合理使用对象的引用类型: 最佳原则:在ios中任何一个对象只有一个强引用 使用weak的情况: 1.懒加载的方式需要使用weak修饰: 如@property(nonatmic,weak) IBOutlet UILabel *lbl; 备注:所谓的懒加载就是指控件通过IB拖到根视图中,再通过连线的方式与ViewController中的属性对应起来.此种方式就相当于self.view执行了addSubview()方法,即self.view对该控件做了强引用,那么在viewContro

assign,copy,strong,weak,nonatomic的具体理解

例子: NSString *houseOfMM = [[NSString alloc] initWithString:'MM的三室两厅']; 上面一段代码会执行以下两个动作:  1 在堆上分配一段内存用来存储@' MM的三室两厅 ' ,比如:内存地址为 0X1111  内容为 ' MM的三室两厅' ,  2 在栈上分配一段内存用来存储 houseForWife ,比如:地址为 0XAAAA  内容自然为 0X1111 下面分别看下(assign,retain,copy):  1.assign的情