Object-C 基础之9 — 对象复制

   本文将讲述对象复制相关知识,以及一些需要注意的地方。 

 

    首先,我们看一段简单的代码

 

NSMutableArray *dataArray=[NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",nil]; NSMutableArray *dataArray2=NULL; dataArray2=dataArray; //相同的引用 NSLog(@"dataArray is : %@",dataArray); NSLog(@"dataArray2 is : %@",dataArray2); [dataArray removeObjectAtIndex:0]; NSLog(@"dataArray is : %@",dataArray); NSLog(@"dataArray2 is : %@",dataArray2); NSLog(@"aaaaa dataArray retaincount: %d", [dataArray retainCount]); dataArray2=[dataArray mutableCopy]; //对象复制 [dataArray2 removeLastObject]; NSLog(@"dataArray is : %@",dataArray); NSLog(@"dataArray2 is : %@",dataArray2); NSLog(@"aaaaa dataArray2 retaincount: %d", [dataArray2 retainCount]); [dataArray2 release]; //必须记得释放 

 

示例结果如下:

 

2011-03-23 00:31:16.823 MemoryTest[948:a0f] dataArray is : (

    1,

    2,

    3,

    4

)

2011-03-23 00:31:16.825 MemoryTest[948:a0f] dataArray2 is : (

    1,

    2,

    3,

    4

)

2011-03-23 00:31:16.826 MemoryTest[948:a0f] dataArray is : (

    2,

    3,

    4

)

2011-03-23 00:31:16.826 MemoryTest[948:a0f] dataArray2 is : (

    2,

    3,

    4

)

2011-03-23 00:31:16.827 MemoryTest[948:a0f] aaaaa dataArray retaincount: 1

2011-03-23 00:31:16.828 MemoryTest[948:a0f] dataArray is : (

    2,

    3,

    4

)

2011-03-23 00:31:16.828 MemoryTest[948:a0f] dataArray2 is : (

    2,

    3

)

2011-03-23 00:31:16.829 MemoryTest[948:a0f] aaaaa dataArray2 retaincount: 1

 

你可能感兴趣的:(Object-C 基础之9 — 对象复制)