0

首先,我是 iPhone 应用程序开发的菜鸟,如果我没有马上得到它,请原谅我。

我有一个简单的问题,关于如何在句式文本中调用多个变量,变量之间有其他单词。

我正在自学 iPhone 应用程序开发,因此我将这段代码基于 Apple 题为“你的第一个 iOS 应用程序”的说明,并调整代码以更好地学习它。

该应用程序的基本布局是两个标记为“姓名”和“职业”的文本字段。下面是一个文本区域(标签)和一个用于提交文本字段信息的按钮。一旦用户输入并提交了他们的姓名和职业,应用程序应该将这些变量放入句子中:“你好,我的名字是 [Name],我是 [Occupation]。” 并在文本区域(标签)中显示句子。

这是我到目前为止所拥有的:

- (IBAction)changeGreeting:(id)sender {

self.userName = self.textField.text;

NSString *nameString = self.userName;
if ([nameString length] == 0) {
    nameString = @"Name";
}
    NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, my name is %@,", nameString];
self.label.text = greeting;

self.userOccupation = self.textField.text;

NSString *occupationString = self.userOccupation;
if ([occupationString length] == 0) {
    occupationString = @"Occupation";
}
NSString *description = [[NSString alloc] initWithFormat:@" and I'm a %@.", occupationString];
self.label.text = description;
}

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == self.textField) {
    [theTextField resignFirstResponder];
}
return YES;
}
@end

运行应用程序并提交姓名“John”和职业“开发者”时,输出句子不包含“你好,我叫 John”输出,只有“and I'm a developer”。

如何获取和调用变量,以使每个变量都显示在句子中所需的位置,使其显示为“您好,我的名字是 John,我是开发人员”。在一个中断的句子中?

4

2 回答 2

1

您使用相同的文本字段来获取姓名和职业?这很奇怪。

无论如何,由于您也使用相同的标签来显示句子,因此您将“你好,我的名字是约翰”替换为“我是一名开发人员”。用这行:

NSString *description = [[NSString alloc] initWithFormat:@" and I'm a %@.", occupationString];
self.label.text = description;

替换最后一行“self.label.text = description;” 使用 atbebtg 建议的行,您应该得到所需的结果。

self.label.text = [NSString stringWithFormat:@"%@ %@",greeting, description];

顺便说一句,如果您不使用 ARC,请记住释放使用 alloc 创建的所有变量。

于 2012-06-26T21:38:42.497 回答
0

您用描述覆盖了 self.label.text 的值,这就是为什么您只看到正在显示的描述值。

替换这一行

self.label.text = description;

self.label.text = [NSString stringWithFormat:@"%@ %@",greeting, description];

我的语法可能有点不对劲。

于 2012-06-26T21:37:18.583 回答