猴子睡觉前之二:property属性设置
2014-10-16 20:22
232 查看
主要说一下retain和copy的区别,先把做实验用的代码和结果贴上
1.h文件中声明三个property,分别带有copy,retain,nonatomic的属性
@property (copy,nonatomic)NSString *testForCopy;
@property (retain,nonatomic)NSString *testForRetain;
@property (nonatomic)NSString *testForNone;
2.m文件中声明一个testcase,并分别给三个property赋值
NSMutableString *testCase=[[NSMutableStringalloc]initWithString:@"test"];
self.testForCopy=testCase;
self.testForNone=testCase;
self.testForRetain=testCase;//此处设置断点
3.结果打印
(lldb)po self.testForCopy.retainCount
1
(lldb)po self.testForNone.retainCount
3
(lldb)po self.testForRetain.retainCount
3
(lldb)po testCase.retainCount
3
根据结果可以判断出,总共初始化一次,赋值了三次,testCase的retainCount变成了3
所以copy并不增加retainCount,而什么都不写和retain一样,都各自增加了一次retainCount.
1.h文件中声明三个property,分别带有copy,retain,nonatomic的属性
@property (copy,nonatomic)NSString *testForCopy;
@property (retain,nonatomic)NSString *testForRetain;
@property (nonatomic)NSString *testForNone;
2.m文件中声明一个testcase,并分别给三个property赋值
NSMutableString *testCase=[[NSMutableStringalloc]initWithString:@"test"];
self.testForCopy=testCase;
self.testForNone=testCase;
self.testForRetain=testCase;//此处设置断点
3.结果打印
(lldb)po self.testForCopy.retainCount
1
(lldb)po self.testForNone.retainCount
3
(lldb)po self.testForRetain.retainCount
3
(lldb)po testCase.retainCount
3
根据结果可以判断出,总共初始化一次,赋值了三次,testCase的retainCount变成了3
所以copy并不增加retainCount,而什么都不写和retain一样,都各自增加了一次retainCount.
相关文章推荐
- 利用反射设置对象的属性(Property)
- DirectShow 通过IAMVideoProcAmp接口设置亮度、对比度等属性 (not ISpecifyPropertyPages接口 )
- #346 – 使用命令的时候MenuItem可以不设置Header属性(No Need to Set Header Property for MenuItem When Using Commands)
- 利用反射设置对象的属性(Property)
- 跟踪对象属性值的修改, 设置断点(Break on property change)
- 关于 Spring 中使用 context:property-placeholder 属性占位符设置配置文件
- Property设置属性的7种方法
- Spring property 设置属性的属性
- jQuery入门之二:设置属性,设置事件处理
- Qt 自定义控件应用QSS(setStyleSheet)设置由Q_PROPERTY设置的属性
- IOS变量的property属性设置和意义总结
- wxVectorProperty 属性的设置
- Hibernate的映射配置文件*.hbm.xml文件中class和property元素的各属性意义和设置
- IOS变量的property属性设置和意义总结
- iOS-变量的property属性设置和意义总结
- Python3基础 property 通过一个属性去设置另外一个属性
- 设置属性<jsp:setProperty>
- IOS变量的property属性设置和意义总结
- 设置修改MSi属性Property
- (三十二):设置属性:<jsp:setProperty> (JSP学习第九天)