使用属性和直接使用变量

假设[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil]为对象A


MyViewController *myVC=[[MyViewController alloc]init];

//@autoreleasepool
//{

myVC.myArray=[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil];

// A retaincount +1 变为 2

//}
//_array=myVC.myArray;
self.array=myVC.myArray; // A retaincount +1 变为 3

NSLog(@"retain count -> %d", [myVC.myArray retainCount]);

2013-02-15 10:36:43.749 MyTest[2039:c07] retain count -> 3



MyViewController *myVC=[[MyViewController alloc]init];

@autoreleasepool
{
myVC.myArray=[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil];

// A retaincount +1 变为 2

}// A retaincount -1 变为 1
//_array=myVC.myArray;
self.array=myVC.myArray;// A retaincount +1 变为 2

NSLog(@"retain count -> %d", [myVC.myArray retainCount]);

2013-02-15 10:36:43.749 MyTest[2039:c07] retain count -> 2


MyViewController *myVC=[[MyViewController alloc]init];

@autoreleasepool
{
myVC.myArray=[NSArray arrayWithObjects:[NSMutableString stringWithString:@"MutableString"],@"string", nil];

// A retaincount +1 变为 2

}// A retaincount -1 变为 1
_array=myVC.myArray; // A retaincount 为 1
//self.array=myVC.myArray;

NSLog(@"retain count -> %d", [myVC.myArray retainCount]);

2013-02-15 10:36:43.749 MyTest[2039:c07] retain count -> 1



你可能感兴趣的:(变量)