我有2段以下的代码
在这种情况下,应用程序没有崩溃。
[NSArray arrayWithArray:nil];
但是,如果我通过nil stringWithString:
应用程序崩溃。
[NSString stringWithString:nil];
结果未捕获的异常'
NSInvalidArgumentException
',原因:' *** -[NSPlaceholderString initWithString:]
nil参数'
这背后的原因是什么?
答案 0 :(得分:2)
如果允许nil
参数,则取决于您正在调用的方法的实现。通常,允许传递nil
。但是如果依赖于传递非nil参数,则可能引发异常。
Apple / iOS开发人员决定调用arrayWithArray:nil
将导致空数组。
对于stringWithString:nil
,他们决定您不允许传递nil
,因此会引发异常。
由于他们决定了他们的方式,你可能想去苹果开发者论坛并在那里询问开发者。