我正在尝试创建一个iPhone应用程序,它将用户对四个标准的响应,并在此基础上,显示与该答案排列相关的一组特定数据。例如,在主视图控制器中:
用户在分段控制器中选择A或B(假设他们选择A)
用户在分段控制器中选择C或D(他们选择D)
用户在分段控制器中选择E或F(他们选择E)
用户在文本框中输入年龄(他们输入37)
用户触摸“获取号码”按钮
基于“A,D,E,37”的组合,触摸“获取数字”时出现的视图显示的图像覆盖有包含数字17.1,14.2,30.0,60.4,18.1的七个标签, 19.7和80.2。如果用户在主控制器上选择了一组不同的响应,那么这些相同的标签中会出现一组不同的数字。
我研究了各种元素,但我无法弄清楚如何将它们结合起来以产生预期的结果。我怎样才能做到这一点?任何建议都会非常感激 - 我对xCode很新并且完全卡住了。
由于
答案 0 :(得分:0)
我实际上并没有用Xcode或Objective-C编程,但在我看来,你正在寻找一个CASE语句。我找到了以下链接,希望他们能帮忙:
the best way to implement readable switch case with strings in objective-c?
http://www.techotopia.com/index.php/The_Objective-C_switch_Statement
答案 1 :(得分:0)
根据您的问题,这一切都包含在一个viewController中,因此您不需要传递一堆属性。困难的部分是知道你是如何试图改变价值观以及需要发生多少分支。此外,您有7个返回值,并且无法知道如何计算这些值,例如,如果第一个响应的输出是使用第二个和第三个响应计算的,等等。 编辑,阅读你的评论后:
有8种可能的结果,也许你可以创建8种方法来处理每种方法。我想不出任何其他方式,但如果我错了,请纠正我:
Possible values:
{
(A,C,E) ;
(B,C,E) ;
(A,D,E) ;
(B,D,E) ;
(A,C,F) ;
(B,C,F) ;
(A,D,F) ;
(B,D,F) ;
}
//Do it with an IF statement:
//first capture state into BOOL values
BOOL a = NO;
BOOL c = NO;
BOOL e = NO;
if (abSegment.selectedSegmentIndex == 0) { a = YES; }
if (cdSegment.selectedSegmentIndex == 0) { c = YES; }
if (efSegment.selectedSegmentIndex == 0) { e = YES; }
//next do some matching with IF statements
if (a && c && e) {
//do something for A,C,E
}
if (!a && c && e) {
//do something for B,C,E
}
if (a && !c && e) {
//do something for A,D,E
}
if (!a && !c && e) {
//do something for B,D,E
}
if (a && c && !e) {
//do something for A,C,F
}
if (!a && c && !e) {
//do something for B,C,F
}
if (a && !c && !e) {
//do something for A,D,F
}
if (!a && !c && !e) {
//do something for B,D,F
}
如果您有硬编码值,您可以在每个符合您要求的IF块中编写标签更新文本。这是hacky,但这是我现在能想到的全部