用copy 还是 strong?】的更多相关文章

一.问题来源 一直没有搞清楚NSString.NSArray.NSDictionary--属性描述关键字copy和strong的区别,看别人的项目中属性定义有的用copy,有的用strong.自己在开发中也是没有认真的去研究,至于使用copy还是用strong完全是根据心情随性而为,也一直没有出什么问题.可苹果竟然分了两个关键字,就肯定有其用意,为了提高自己还是要仔细的搞清楚其中之差别!好了,废话说完进入正题. 二.对象属性描述copy与strong的区别 直接上代码: ``` @propert…
////  @proprety数组字典字符串用copy和strong区别(深浅拷贝).h//  IOS笔记//// /* _proprety________copy_strong_________h *//* 定义属性时NSArray,NSString,NSDictionary为何要用copy  定义一个Person类,并定义一下属性,并设置strong(深拷贝) @interface Person : NSObject  @property (nonatomic, strong) NSStri…
身边一同事,我印象在过去三个月,有两次因为使用“copy”修饰UIKit控件的属性,导致程序崩溃.他还一本正经的说我以前一直使用copy. 好了,到这里我们就不得不说说什么时候使用copy.我的印象中,只有两处使用了copy,即修饰NSString类型与block,其他的都是使用strong关键字修饰. 说到这里,我们先来说说NSString类型,我在创建的NSString类型的属性中,也曾也使用过strong修饰的,因为我几乎没有使用过NSMutableString类型转换,我不用去考虑是用c…
NSArray与NSMutableArray用copy修饰还是strong 这个是原文  http://blog.csdn.net/winzlee/article/details/51752354 一.NSMutableArray 被copy.strong修饰后的变化: 把NSMutableArray用copy修饰有时就会crash,因为对这个数组进行了增删改操作,而copy后的数组变成了不可变数组NSArray,没有响应的增删改方法,所以对其进行增删改操作就会报错. 举例如下: (1)copy…
1.http://www.cocoachina.com/ios/20150512/11805.html 2.http://blog.csdn.net/winzlee/article/details/51752354 NSString和NSMutableString之间的深拷贝和浅拷贝的问题: NSString 使用copy       NSMutableString 使用 strong 当使用NSString(A)给NSString(B)赋值,当B为copy的时候也不会生成2个内存空间,即为浅拷…
iOS中copy和strong修饰符的区别 //用copys修饰的生成的都是不可变的对象 ,如果调用可变类型方法的直接报错 @property(nonatomic,copy)NSString * cpStr; @property(nonatomic,strong)NSString *strongStr; 1.当copy的对象类型为不可变对象如NSString类型时,和Strong修饰作用是一样的 NSString *str = @"wxwx"; self.cpStr = str; se…
http://stackoverflow.com/questions/18526909/whether-i-should-use-propertynonatomic-copy-or-propertynonatomic-strong-fo 'copy' will cause the setter for that property to create a copy of the object, and is otherwise identical to strong. You would use…
转自:http://www.cnblogs.com/nonato/archive/2013/11/28/3447162.html iOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数. 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样. (一般情况下: 后面会讨论例外情况)alloc 对象分配后引用计数为1retain 对象的引用计数+1copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来…
copy@property (nonatomic, copy) NSString *name;self.name = mutableString;这时,name对mutableString一个深拷贝,另开辟一个空间,将mutableString内容拷贝到这个空间中,self.name指向这个空间,修改mutableString,不影响self.name.self.name = string;这时,name对string是一个浅拷贝,只是将指针指向这个string所指向的对象,因为string是不…
@property(copy,nonatomic)NSMutableString*copyStr; @property(strong,nonatomic)NSMutableString*strongStr; @property(weak,nonatomic)NSMutableString*weakStr; @property(assign,nonatomic)NSMutableString*assignStr; NSMutableString* originStr = [[NSMutableSt…