在下面的代码中,我希望保留计数增加到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
答案 0 :(得分:2)
self.imageBackground = IMAGE;
没有self.
你没有使用属性的setter,因此保留计数不会改变,因为那只是对ivar的简单指针赋值。