用property声明属性时,strong,copy,weak的一般用法

//一般情况下,在声明字符串对象的时候使用 copy

//UI对象使用weak

//其他对象使用strong

@property(nonatomic,copy)NSString *name;

@property(nonatomic,weak)UIImage *image;

@property(nonatomic,strong)NSArray *array;
时间: 2024-09-29 00:35:51

用property声明属性时,strong,copy,weak的一般用法的相关文章

block作为类的属性时用copy

1. block作为类的属性时用copy Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的 <栈 :由系统维护的局部变量 是存在栈上的,其生命周期随函数的生命周期> <堆 :由程序员申请空间地址,由程序员手动释放,生命周期受到程序员控制> 使用retain也可以,因为block的retain行为默认是用copy的行为实现的,block变量默认是声明为栈变量的,为了能够在block的声明域外使用,所以要把

ARC声明属性关键字详解(strong,weak,unsafe_unretained,copy)

ARC声明属性关键字详解(strong,weak,unsafe_unretained,copy) 在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章. 但是在iOS 5中加入ARC,产生了几个新的关键字strong, weak, unsafe_unretained.  我们可以将其与以前的关键字对应学习: strong与retain类似,weak和unsafe_unretained这两个新关键字与assign类

@property的属性 strong 和 weak 如何理解?

在ObjectiveC里,用@property访问所有的实例变量.@property有一对属性:strong 和 weak.官方文档里的解释晦涩难懂:Stack Overflow里的用户RDC (http://stackoverflow.com/users/1371853/rdc) 给出了形象的解释: 把对象想象成一条狗,它要跑 (be deallocated).强指针就像一条拴在狗脖子上的狗链:只要攥在手里,狗就跑不了:如果5个人攥着5条狗链都拴着狗 (5个强指针指向对象),除非5条狗链都撒开

(转)OC学习笔记 @property的属性 strong 和 weak 理解

在ObjectiveC里,用@property访问所有的实例变量.@property有一对属性:strong 和 weak.官方文档里的解释晦涩难懂:Stack Overflow里的用户RDC (http://stackoverflow.com/users/1371853/rdc) 给出了形象的解释: 把对象想象成一条狗,它要跑 (be deallocated).强指针就像一条拴在狗脖子上的狗链:只要攥在手里,狗就跑不了:如果5个人攥着5条狗链都拴着狗 (5个强指针指向对象),除非5条狗链都撒开

【整理】Object-C中的属性(Property)的Setter:assign,copy,retain,weak,strong之间的区别和联系

iOS编程过程中,经常看到一些属性前面有些修饰符,比如copy,retain等. 这些关键字,是Object-C语言中,对于Property的setter. Mac官网: The Objective-C Programming Language – Declared Properties – Setter Semantics 中的解释是: Setter Semantics These attributes specify the semantics of a set accessor. They

属性设置@property之retain,assign,weak,strong,copy

1.assign assign只是简单赋值,不更改索引计数,适用于基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等) 2.copy copy用来建立一个索引计数为1的对象,然后释放旧对象, 常用语NSString ,指在赋值时使用传入值的一份拷贝. 3.retain retain用来释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 对其他NSObject和其子类,对参数进行release旧值,再ret

@property的属性weak nonatomic strong等介绍(ios)

学习ios也已经快半个月了,也尝试做简单的应用程序,但是遇到很多问题,总结下来就是:急于求成,总想着做一个东西出来,里面的东西也不懂,只知道把这个复制到代码中就OK了,现在发现基础很重要,所以在此总结一下最基本的经常接触的weak nonatomic strong等功能: @property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明和实现. @property是在头文件.h中声明一个变量的setter和getter方法

UI-iOS开发中@property的属性weak nonatomic strong readonly等介绍

@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法.在Xcode4.5以及以后的版本,@synthesize可以省略. 1.atomic与nonatomicatomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题.nonatomic:如果该对象无需考虑多线程的情况,请加入这个属性,这样会让编译器少生成一些互斥加锁代码,可以提高效率. 2.readwrite与readonlyreadw

OS开发中@property的属性weak nonatomic strong readonly

@property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法.在Xcode4.5以及以后的版本,@synthesize可以省略. 1.atomic与nonatomic atomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题. nonatomic:如果该对象无需考虑多线程的情况,请加入这个属性,这样会让编译器少生成一些互斥加锁代码,可以提高效率. 2.readwrite与readonly re