目标C.如果文本字段等于某事,我希望标签显示某个文本

时间:2015-08-15 10:39:32

标签: ios objective-c

我是编程新手。我创建了一个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;
      }
   }
}

2 个答案:

答案 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