当 If 函数的结果出错时会发生什么?



我正在学习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的类型以及如何设置的代码。

相关内容

  • 没有找到相关文章

最新更新