我有三个按钮,名为(标题)你好,没有,天堂和一个标签(IBOutlet UIlabel实验室).我想显示三个diff消息,三个diff按钮单击.但是以下代码未能实现此目的.谁能提出任何想法?
-(IBAction)buttonclick:(id)sender
{
NSString *title=[sender titleForState:UIControlStateNormal];
if([title isEqualToString:@"hello"])
{
NSString *str=[[NSString alloc] initWithFormat:@"abc"];
}
else if([title isEqualToString:@"nothing"]) {
NSString *str=[[NSString alloc] initWithFormat:@"def"];
}
else if([title isEqualToString:@"heaven"])
{
NSString *str=[[NSString alloc] initWithFormat:@"ijk"];
}
lab.text=str;
[str release];
}
Run Code Online (Sandbox Code Playgroud)
输出:
warning:unused variable str;
Run Code Online (Sandbox Code Playgroud)
不要使用按钮的标题来区分按钮.如果您的按钮要本地化,它将无法工作.使用不同的操作,或使用标记来区分它们.
警告是你在这种情况下做错的线索.局部变量仅在其声明的范围内可见,因此您的lab.text = str行实际上是将lab.text设置为在其他位置定义的str,可以是静态变量,也可以是实例变量.这是你可以做的事情:
NSString *str;
switch ([sender tag]) {
case FirstButtonTag:
str = @"abc";
break;
case SecondButtonTag:
str = @"def";
break;
case ThirdButtonTag:
str = @"ijk";
break;
}
lab.text = str;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2401 次 |
| 最近记录: |