2011-10-31 23 views
0

我基本上試圖讓一種方法,使我得到隨機的顏色繪圖。我創建了一個方法是這樣的:在方法內調用方法(UIColor)。初學者

-(UIColor*)randomColour 
{ 
    NSArray *colourArray = [NSArray arrayWithObjects:[UIColor redColor], 
                [UIColor blueColor], 
                [UIColor greenColor],nil]; 
    UIColor *colour = [colourArray objectAtIndex:rand()%3]; 

    [colourArray release]; 
    return colour; 
} 

,我想這樣稱呼它

[[UIColor [self randomColour]] setStroke]; 

或類似這樣的

[[UIColor randomColour] setStroke]; 

但都失敗。我不明白的是什麼?

對於第二個選項,我得到一個警告:

「找不到類方法‘+ randomColour’」

我已經試過類方法的閱讀了,但不明白爲什麼它的詛咒它。任何快速指針?

由於使用

+(UIColor*)randomColour 

,而不是

-(UIColor*)randomColour 

回答

0

它應該是

[[self randomColour] setStroke]; 
+0

這個工程!謝謝。 –

+0

但是現在我有一個內存管理問題。如果我釋放頂部函數中的colourArray,它會崩潰...是否僅使其保留數組的一個特定條目?數組返回0並隨後釋放它的所有子節點和它自己? 我應該如何恰當地管理陣列的內存? –

+0

既然你沒有分配內存,你不應該釋放'colorArray'。 – Ilanchezhian

0

嘗試,你只需要做:

[[self randomColour] setStroke]; 
+0

這會給我帶來什麼?我試過了,並沒有工作。就我所見,它不應該是一種階級方法,不是嗎? –

+0

'+'和'-'之間的區別正是類和實例方法之間的區別。如果你想按照你問的方式打電話給你,你應該照我說的去做。你是什​​麼意思「沒有工作」? – Saphrosit

1

如果您在自己的類中定義randomColour