保留分配给保留属性的已分配对象的计数

时间:2011-03-16 07:44:52

标签: objective-c uiimage retaincount

在下面的代码中,我希望保留计数增加到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

1 个答案:

答案 0 :(得分:2)

self.imageBackground = IMAGE;

没有self.你没有使用属性的setter,因此保留计数不会改变,因为那只是对ivar的简单指针赋值。