将nil作为参数传递给stringWithString时出现异常:?

时间:2015-06-20 07:28:32

标签: ios objective-c exception

我有2段以下的代码

在这种情况下,应用程序没有崩溃。

[NSArray arrayWithArray:nil];

但是,如果我通过nil stringWithString:应用程序崩溃。

[NSString stringWithString:nil];
  

结果未捕获的异常' NSInvalidArgumentException',原因:' *** - [NSPlaceholderString initWithString:] nil参数'

这背后的原因是什么?

1 个答案:

答案 0 :(得分:2)

如果允许nil参数,则取决于您正在调用的方法的实现。通常,允许传递nil。但是如果依赖于传递非nil参数,则可能引发异常。

Apple / iOS开发人员决定调用arrayWithArray:nil将导致空数组。
对于stringWithString:nil,他们决定您不允许传递nil,因此会引发异常。

由于他们决定了他们的方式,你可能想去苹果开发者论坛并在那里询问开发者。