放在一起的正确语法是什么?&还是陈述?
我正在尝试实现一些代码来验证用户输入的数据。我有一个分段控件,一个文本视图和一个下一页按钮。要前进到下一个视图控制器,用户必须在分段控件上选择“是”或“否”,如果选择是,则必须在文本视图中输入一些文本。
- (IBAction)nextPageButton:(UIBarButtonItem *)sender {
if (weatherDelayString == nil || ([weatherDelayString isEqual: @"YES"] && weatherDelayTextView.text == nil)) {
NSLog(@"nothing selected");
}else{
vc7Signature *vc7 = [[vc7Signature alloc]initWithNibName:nil bundle:nil];
[self presentViewController:vc7 animated:YES completion:nil];
}}
有人可以澄清实现此逻辑所需的语法吗?
答案 0 :(得分:1)
在每个决定周围加上括号,以便它绝对清晰。所以,你现在有
A || B && C
而你应该放入
(A || B) && C
或
A || (B && C)
我会由您决定哪种方法最适合您的应用
答案 1 :(得分:1)
为什么不对你的代码进行去整理/解码以摆脱一些AND& amp;或案件。我可以用一个AND来做到这一点:
- (IBAction)nextPageButton:(UIBarButtonItem *)sender {
if ([weatherDelayString isEqual: @"YES"] && ([weatherDelayTextView.text length] > 0))
{
vc7Signature *vc7 = [[vc7Signature alloc]initWithNibName:nil bundle:nil];
[self presentViewController:vc7 animated:YES completion:nil];
} else {
NSLog(@"the YES / NEXT condition I want the users to have to go forward isn't selected");
}
}
希望比OR加上嵌套的AND条件更容易阅读。
答案 2 :(得分:0)
使用这个,,,
- (IBAction)nextPageButton:(UIBarButtonItem *)sender
{
if ((weatherDelayString == nil || [weatherDelayString isEqual: @"YES"]) && weatherDelayTextView.text == nil)
{
NSLog(@"nothing selected");
}
else
{
vc7Signature *vc7 = [[vc7Signature alloc]initWithNibName:nil bundle:nil];
[self presentViewController:vc7 animated:YES completion:nil];
}
}