我正在学习objective-c,这时这件事来打扰我。
我试图制作一个程序,当用户输入特定内容时,该程序将返回应显示的PDF。
我的代码看起来像这样
filePath = (userChooseA) ? @"firstFilePath" : @"secondFilePath";
如果用户选择A,则文件路径将是第一个文件路径,反之亦然。
但是,当我故意为 firstFilePath 输入不存在的文件时,无论用户选择如何,系统都会直接显示 secondFilePath。
我的问题是,
为什么会发生这种情况以及如何防止这种情况?
谢谢
问候
这是因为此语句等效于:
if(userChooseA)
{
filePath = @"firstFilePath";
}else{
filePath = @"secondFilePath";
}
我假设 userChooseA 是在比较路径时在代码中的其他地方设置的 BOOL,如果用户选择 B 或任何其他路径,则为 false。
这意味着除非用户选择 A,否则文件路径将为 B。
如果你想在既没有选择A也没有选择B的情况下做其他事情,你可以写(再次假设UserChooseA和userChooseB是在你的代码中的其他地方设置的布尔值(:
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的类型以及如何设置的代码。