2015-06-20 80 views
0

我下面有2件代碼將nil作爲參數傳遞給stringWithString時發生異常:?

在這種情況下,應用程序沒有崩潰。

[NSArray arrayWithArray:nil]; 

但是,如果我通過零到stringWithString:應用程序崩潰。

[NSString stringWithString:nil]; 

結果未捕獲的異常 'NSInvalidArgumentException',原因: '*** - [NSPlaceholderString initWithString:]零參數'

這背後的原因是什麼?

回答

2

如果允許使用nil參數,它將取決於您要調用的方法的執行的100%。一般通過nil是允許的。但是如果你依賴一個非零參數傳入,你可能會引發異常。

Apple/iOS開發者決定調用arrayWithArray:nil將導致一個空數組。
對於stringWithString:nil他們決定您不允許通過nil並因此引發異常。

爲什麼他們決定他們做的方式,你可能想去蘋果開發者論壇並且問那裏的開發者。

相關問題