2014-02-21 39 views
12

今天我測試了使用firstObject和objectAtIndex:0。如果數組的大小爲0,則使用前者不會導致崩潰,而後者會導致崩潰。所以我在想,使用firstObject比objectAtIndex:0更好。但是在使用firstObject over objectAtIndex方面存在缺陷:0?方法firstObject vs objectAtIndex的用法有什麼區別:0?

我也一直在閱讀NSArray documentation,我感到很驚訝,並想知道他們爲什麼沒有在文檔中提到這個事實。

+0

如果你需要的一切是零對象,'firstObject'是罰款。如果檢查一個變量索引並使用'firstObject',否則使用'objectAtIndex'將是愚蠢的。 –

+0

在我們的代碼中,我們有很多使用objectAtIndex:0來訪問對象的實例。通常我們只需要所有的對象 – Keale

回答

21

還有一個密鑰區別。如果沒有,則使用firstObject返回nil。如果沒有對象,使用objectAtIndex:0會導致應用程序崩潰(拋出異常)。從用戶體驗角度來看,強烈建議使用崩潰,因此使用firstObject更安全。

最大的缺陷:由於iOS 4的firstObject已問世,但私人API,直到iOS的7

+3

數組不是您所期望的大小是邏輯錯誤的結果。碰撞往往比嘗試繼續更安全。 –

+0

@ChrisDevereux好點的。我將分析我們的代碼,根據具體情況查看哪些消息適用於使用 – Keale

+5

是的,但至少您可以檢查零而不是崩潰應用程序,這對於普通用戶來說最終看起來很糟糕...... – virindh

相關問題