0

在下面的代码中,我希望保留计数增加到 2,但在分配后它仍然为 1。分配给具有保留限定符的属性。保留将使对象的保留计数增加 1。谁能解释为什么保留计数不增加?

MyClass.h:

@property (nonatomic,retain) UIImage * imageBackground;

我的班级.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
4

1 回答 1

2
self.imageBackground = IMAGE;

如果没有,self.您将不会使用属性的设置器,因此保留计数不会改变,因为这只是对 ivar 的简单指针分配。

于 2011-03-16T07:46:56.373 回答