A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuanlingqi 中级黑马   /  2015-1-15 20:44  /  890 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yuanlingqi 于 2015-1-15 20:51 编辑
  1. #import <Foundation/Foundation.h>
  2. #import "NSStringTest.h"
  3. int main(int argc, const char * argv[])
  4. {
  5.     NSMutableString *muStr = [NSMutableString stringWithFormat:@"abc"];
  6.     NSStringTest * test = [[NSStringTest alloc]init];
  7.     test.cStr = muStr;
  8.     test.retainStr = muStr;
  9.     test.strongStr = muStr;
  10. [muStr appendFormat:@"123"];
  11.     NSLog(@"muStr %@ %p",muStr,muStr);
  12.     NSLog(@"copy %@ %p",test.cStr,test.cStr);
  13.     NSLog(@"strong %@ %p",test.strongStr,test.strongStr);
  14.     NSLog(@"retain %@ %p",test.retainStr,test.retainStr);
  15.     return 0;
  16. }
复制代码
  1. #import <Foundation/Foundation.h>

  2. @interface NSStringTest : NSObject
  3. @property(nonatomic,copy)NSString* cStr;
  4. @property(nonatomic,strong)NSString* strongStr;
  5. @property(nonatomic,retain)NSString* retainStr;
  6. @end
复制代码
执行结果:
2015-01-15 20:47:22.715 内存控制练习[2353:162418] muStr abc123 0x100204bf0
2015-01-15 20:47:22.716 内存控制练习[2353:162418] copy abc 0x100204eb0
2015-01-15 20:47:22.716 内存控制练习[2353:162418] strong abc123 0x100204bf0
2015-01-15 20:47:22.716 内存控制练习[2353:162418] retain abc123 0x100204bf0
Program ended with exit code: 0
从结果可以看出,copy是深复制,retain和strong是浅复制


2 个回复

倒序浏览
干的漂亮
回复 使用道具 举报
很好,学习了!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马