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

猴子睡觉前之二: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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: