如果函数的结果出错,会发生什么?

时间:2014-12-18 08:40:31

标签: objective-c

我正在学习目标-c这件事来了,打扰了我。

我尝试制作一个程序,当用户输入特定内容时,该程序将返回应显示的PDF文件。

我的代码看起来像这样

filePath = (userChooseA) ? @"firstFilePath" : @"secondFilePath";    

如果User选择A,则右侧为文件路径firstFilePath,反之亦然。

但是,当我故意为firstFilePath输入不存在的文件时,无论用户选择什么,系统都会直接显示secondFilePath。

我的问题是,

为什么会发生这种情况以及如何预防?

谢谢,

此致

1 个答案:

答案 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类型及其设置方式的代码。