2010-12-08 109 views
1

我有一個應用程序具有多個按鈕,都是在界面生成器中分配的圖像。然後我在應用程序中更改那裏的圖像。我想知道你是如何改變圖像回到原始圖像什麼....我做到了,通過下面的代碼,但它總是崩潰的應用程序按鈕上的圖像

- (IBAction)resetCards 
{ 
    NSString *cardImage = [[NSString alloc] initWithFormat:@"CardBackground.png"]; 

    UIImage *buttonImage = [UIImage imageNamed:cardImage]; 

    [holdCardOne setImage:buttonImage forState:UIControlStateNormal]; 

    [holdCardTwo setImage:buttonImage forState:UIControlStateNormal]; 

    [flopCardOne setImage:buttonImage forState:UIControlStateNormal]; 

    [flopCardTwo setImage:buttonImage forState:UIControlStateNormal]; 

    [flopCardThree setImage:buttonImage forState:UIControlStateNormal]; 

    [turnCard setImage:buttonImage forState:UIControlStateNormal]; 

    [riverCard setImage:buttonImage forState:UIControlStateNormal]; 

    [cardImage release]; 
    [buttonImage release]; 

} 
+1

@ user517814 - 您應該關閉(標記接受的最佳答案)您的一些舊問題。你和擁有相關答案的人都將獲得聲望點。 :-) – 2010-12-08 17:19:55

+0

我不關心聲望點? – user903785 2010-12-08 17:37:39

回答

3

不要叫[buttonImage release] - 它正在被autoreleased。

如果您調用alloc,copy或retain,通常只會調用release。如果您不確定,總是檢查文檔中是否返回對象的消息,但正常的Objective-C過程是返回autorelease對象。

1

除了婁的答案,爲什麼不使用:

UIImage *buttonImage = [UIImage imageNamed:@"cardBackground.png"]; 

而不是創造一個NSString嗎?