Денис Крешихин

Денис
Крешихин

iOS-разработчик с 15+ летним опытом

Тимлид/сеньор по обстоятельствам

Интересы: swift, uikit, rxswift, oop/ood, devops, agile

2024 © Денис Крешихин

Articles tagged by rxswift

Нюансы обработки ошибок в completion-коллбеке

В практике программирования Swift часто можно встретить следующий формат completion-коллбеков, которые могут возвращать либо результат без ошибки, либо ошибку:

func doSomething(_ completion: (data: Data?, error: Error?) -> Void())

Проблема таких completion-коллбеков в опционалах которые должны разрешить проблемы возвращения nil на месте параметра data в случае ошибки и nil в параметре error. Но кроме этих двух состояния возникают ещё два непредусмотренных логикой - когда оба параметра nil, или когда оба параметра установлены. В этой заметке я хотел бы порассуждать о том как правильно обрабатывать такие вызовы, т.к. это проблема встречается часто при работе со старыми методами из CocoaTouch, при разработке кода с обратной совместимостью API, а так же при работе с библиотеками третьих сторон.

swiftrxswift10-го мар. 2024read more