Articles tagged by rxswift
Нюансы обработки ошибок в completion-коллбеке
В практике программирования Swift часто можно встретить следующий формат completion-коллбеков, которые могут возвращать либо результат без ошибки, либо ошибку:
func doSomething(_ completion: (data: Data?, error: Error?) -> Void())
Проблема таких completion-коллбеков в опционалах которые должны разрешить проблемы возвращения nil
на месте параметра data
в случае ошибки и nil
в параметре error
. Но кроме этих двух состояния возникают ещё два непредусмотренных логикой - когда оба параметра nil
, или когда оба параметра установлены. В этой заметке я хотел бы порассуждать о том как правильно обрабатывать такие вызовы, т.к. это проблема встречается часто при работе со старыми методами из CocoaTouch
, при разработке кода с обратной совместимостью API, а так же при работе с библиотеками третьих сторон.