我是编程新手。我创建了一个NSDictionary
并在那里放了3个字符串。我的目标是每次在文本字段中输入食物名称时在标签中显示一条消息。下面的代码不会更改标签中的文本。它几乎就像什么也没发生一样。但当我NSLog
时,它会正确显示所有内容。有什么建议吗?
- (IBAction)submitButton:(id)sender {
NSDictionary *foodList = @{
@"Chicken":@"BBQ it, then eat it with sauce.",
@"Steak":@"Buy steak sauce and eat it with pleasure..",
@"Sushi":@"Sushi is raw fish, eew, still wanna eat that?",
};
NSString *foodTextField1 = self.foodTextField.text;
NSString *foodLabel = self.foodLabel.text;
for (NSString *foodName in foodList) {
NSString *foodRecipe = foodList[foodName];
if ([foodTextField1 isEqualToString:foodName]) {
foodLabel = foodRecipe;
}
}
}
答案 0 :(得分:1)
您实际上并未将foodLabel.text分配给代码中的任何位置。你需要添加:
self.foodLabel.text = @"Something";
答案 1 :(得分:1)
该行:
NSString *foodLabel = self.foodLabel.text;
在您的本地变量foodLabel
中添加对具有当前标签值的NSString
的引用。 不为foodLabel
制作self.foodLabel.text
其他名称(别名)。
稍后你这样做:
foodLabel = foodRecipe;
您正在更改字符串foodLabel
引用,但这绝不会影响self.foodLabel.text
的值。
第一个声明,声明foodLabel
并且根本不需要设置它 - 你永远不会使用标签的当前值。
第二个陈述应该是:
self.foodLabel.text = foodRecipe;
设置标签的值。
HTH