2011-03-16 62 views
0

在下面的代码中,我期望保留计数增加到2,但在赋值后它保持为1。赋值是带有保留限定符的属性。保留将使对象的保留计数递增1.任何人都可以解释为什么保留计数不会增加?保留分配给保留属性的分配对象的数量

MyClass.h:

@property (nonatomic,retain) UIImage * imageBackground; 

MyClass.m:

UIImage * IMAGE = [[UIImage alloc] initWithContentsOfFile:@"image.png"]; 
NSLog(@"retain-count(%d)", [IMAGE retainCount]); // returns 1 
imageBackground = IMAGE; 
NSLog(@"retain-count(%d)", [IMAGE retainCount]); // returns 1, should return 2 

回答

2
self.imageBackground = IMAGE; 

没有self.您不使用酒店的二传手,从而保留计数,因为不会改变这只是一个简单的指针分配给伊娃。

+0

谢谢!这是一个解决了我的代码中的很多问题的答案,我一直在摸索它几个小时! – andrewz 2011-03-16 07:58:57

相关问题