2010-04-17 53 views
2

我有一系列按鈕,每個都使用不同的圖像。我可以重用保持着的變量像這樣如下:保留,重用,發佈?

// set images 
UIImage *image = [[dice1 backgroundImageForState:UIControlStateHighlighted] retain]; 
[dice1 setBackgroundImage:image forState:(UIControlStateHighlighted|UIControlStateSelected)]; 
image = [dice2 backgroundImageForState:UIControlStateHighlighted]; 
[dice2 setBackgroundImage:image forState:(UIControlStateHighlighted|UIControlStateSelected)]; 
image = [dice3 backgroundImageForState:UIControlStateHighlighted]; 
[dice3 setBackgroundImage:image forState:(UIControlStateHighlighted|UIControlStateSelected)]; 
image = [dice4 backgroundImageForState:UIControlStateHighlighted]; 
[dice4 setBackgroundImage:image forState:(UIControlStateHighlighted|UIControlStateSelected)]; 
image = [dice5 backgroundImageForState:UIControlStateHighlighted]; 
[dice5 setBackgroundImage:image forState:(UIControlStateHighlighted|UIControlStateSelected)]; 
image = [dice6 backgroundImageForState:UIControlStateHighlighted]; 
[dice6 setBackgroundImage:image forState:(UIControlStateHighlighted|UIControlStateSelected)]; 
[image release]; 

或做我需要爲傳遞到每個按鈕的setBackgroundImage:每個圖像的新UIImage並依靠自動釋放,而不是保留的UIImage。上述的作品,但我不知道如何將這些按鈕的圖像設置爲相同的圖像將影響保留計數。

回答

3

你有什麼會泄漏(因爲你失去了對第一個圖像的引用)和崩潰(因爲你release你不擁有的對象)。如果你刪除了-retain-release,你的代碼就可以正常工作。

+0

好吧,所以圖像是由UIButton「擁有」,我不需要擔心自己保留它。應用程序運行良好,沒有你所指出的,所以謝謝! – typeoneerror 2010-04-17 21:23:19