2011-03-11 59 views
2

这是我试过修改代码,但没有成功,每次:我如何引用NSMutableArray中的UIButton?

(UIButton *)[colourButtonsArray objectAtIndex:2].text = @"Test"; 

我的东西不是一个结构或联合获得的“请给成员‘文本’的错误。

任何想法如何解决这个问题?

回答

5

调用正确的方法:

[(UIButton *)[colourButtonsArray objectAtIndex:2] setTitle:@"Test" forState:UIControlStateNormal]; 

文档在这里:http://developer.apple.com/library/ios/documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html#//apple_ref/occ/instm/UIButton/setTitle:forState

如果你只是想投和访问属性你可以添加更多的括号(虽然文字是不是实际属性):

((UIButton *)[colourButtonsArray objectAtIndex:2]).buttonType; 
+0

给我同样的错误。 – Andrew 2011-03-11 21:23:14

+0

我认为这是对的,但诀窍在于文本不是UIButton的属性。你需要setTitle:,而不是文本。 – GendoIkari 2011-03-11 21:30:28

+0

@Gendolkari你是对的,我已经更新了我的答案,并给了你一个+1 – theChrisKent 2011-03-11 21:31:10

3

为了避免使用转换的额外括号,可以使用方法语法而不是点符号。但是,在UIButton的情况下...您使用setTitle:forState:方法设置了UIButton的文本。

相关问题