我知道我可以返回該參數不能通過NSError nil或拋出NSException,但什麼是最好的選項來通知該參數不能爲零在Objective-C?在Objective-c中我應該用什麼來返回該參數不能爲零?
2
A
回答
1
文檔。
使用斷言在開發過程中引發異常。
也回來NSError
(雖然它應該希望永遠不會發生到你的生產時間)。
0
你可以使用NSAssert()
,這隻會火在建立地方NS_BLOCK_ASSERTIONS
沒有定義:
- (void)someMethodWithParam:(id)someParam {
NSAssert(someParam, @"someParam cannot be nil");
...
}
這將非常限制檢查你,開發夥伴們,但如果你想讓它持續下去,無論身材,那麼NSException
是最好的:
- (void)someMethodWithParam:(id)someParam {
if (!someParam) {
[NSException raise:@"MyException" format:@"someParam cannot be nil"];
}
...
}
0
要檢查在編譯時使用
__attribute__ with nonnull
實施例,第一和第二參數不能爲空:
extern void * my_memcpy (void *dest, const void *src, size_t len)
__attribute__((nonnull (1, 2)));
非null屬性指定一些功能參數應 是非空指針。使用非空編碼對 值的期望編碼爲顯式契約,這可以幫助捕獲潛伏在任何調用代碼中的任何空指針錯誤 。請記住:編譯時錯誤»運行時間 錯誤。
更多here
相關問題
- 1. 爲什麼這個方程返回零,即使它不應該?
- 2. 我應該通過什麼參數來調用該方法C#
- 3. 什麼應該dynamicType在Swift中返回?
- 4. 我應該什麼時候回來?
- 5. C++函數應該返回什麼?
- 6. 紅寶石#times不返回什麼,我認爲它應該
- 7. 爲什麼我不應該從ASP.NET ApiController返回HTML?
- 8. 爲什麼我們應該總是從函數返回值?
- 9. 爲什麼我不應該使用Unity?
- 10. 爲什麼我不應該使用atoi()?
- 11. 無效參數傳遞時函數應該返回什麼?
- 12. 爲什麼我們應該在button_press_event.handler的末尾返回True?
- 13. 爲什麼它表明__init__函數應該始終不返回?
- 14. 爲什麼你不應該返回一個數組ref?
- 15. 我們應該或不應該在模型中使用參數?
- 16. 如果網頁不存在,我應該返回什麼標題?
- 17. 我應該在這裏設置__block變量爲零,爲什麼?
- 18. 當我調用OnFocusChangeListener.onFocusChange()函數時,應該返回什麼?
- 19. 爲什麼我不應該在C中使用exit函數?
- 20. 什麼StatusCode應該返回到參數超出範圍
- 21. 什麼時候應該返回函數的參考
- 22. 不能擴展枚舉;我應該用什麼來代替?
- 23. 爲什麼應該(或不應該)搜索查詢只返回文檔ID?
- 24. 我應該在XMLHttpRequest中使用什麼回調函數來呈現響應?
- 25. 爲什麼我不應該用繼承來使用equals?
- 26. 我應該用什麼來代替stmt.executeUpdate()?
- 27. 我應該用什麼來代替AddPort?
- 28. 我應該用什麼來代替DS.FixtureAdapter
- 29. 我應該用什麼來代替FlowLayout()?
- 30. 我應該用什麼來代替LoadWithPartialName()?
NSParameterAssert會更適合這裏 – jrturton
@jrturton同意。 – Droppy