0

次のコードでは、保持カウントが 2 に増えることを期待していますが、割り当て後も 1 のままです。割り当ては、retain 修飾子を持つプロパティに対するものです。保持すると、オブジェクトの保持カウントが 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
4

1 に答える 1

2
self.imageBackground = IMAGE;

がないself.と、プロパティのセッターを使用していないため、ivar への単純なポインターの割り当てにすぎないため、保持カウントは変更されません。

于 2011-03-16T07:46:56.373 に答える