2011-03-16 99 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

相關問題