我正在学习目标-c这件事来了,打扰了我。
我尝试制作一个程序,当用户输入特定内容时,该程序将返回应显示的PDF文件。
我的代码看起来像这样
filePath = (userChooseA) ? @"firstFilePath" : @"secondFilePath";
如果User选择A,则右侧为文件路径firstFilePath,反之亦然。
但是,当我故意为firstFilePath输入不存在的文件时,无论用户选择什么,系统都会直接显示secondFilePath。
我的问题是,
为什么会发生这种情况以及如何预防?
谢谢,
此致
答案 0 :(得分:1)
那是因为这句话相当于:
if(userChooseA)
{
filePath = @"firstFilePath";
}else{
filePath = @"secondFilePath";
}
我认为在比较路径时,userChooseA是代码中其他位置的BOOL集,如果用户选择B或任何其他路径,则为false。
这意味着除非用户选择A,否则文件路径将为B.
如果你想要做其他事情,如果既没有选择A或B,你可以写(再次假设UserChooseA和userChooseB是Bool设置在代码中的其他地方):
int fileSelection = 3;
If (userChooseA) fileSelection = 0;
If (userChooseB) fileSelection = 1;
switch (fileSelection) {
case 0:
filePath = @"firstFilePath";
break;
case 1:
filePath = @"secondFilePath";
break;
default:
... do something else...
break;
}
如果这是基础的,正如评论中所建议的那样,我们需要查看更多有关userChooseA类型及其设置方式的代码。