과거에 enum을 error를 custom하는 데 종종 쓰이는것을 보았다. 따라서 여기에 enum을 통한 error handling을 적용해보자. 이는 completion handler 를 이용할것이다. 다음과 같이 몇가지 error을 정의했다.
또한 Result는 enum으로서 success와 failure로 구성되어있다. Success,Failure는 generic을 이용한다. 우리의 Success의 경우는 첫번째 사진의 Json 을 보면 확인할 수 있듯이, [MyData]이다. Error 프로토콜을 따르는 Failure은 위에서 정의한 NetworkError이다.
id 를 ids로 바꾸고,
decoding 부분을 수정한 후 실행했을 때,
정의한 에러가 잘 실행됨을 알 수 있다.
json데이터의 lat,lng부분이 거슬려서.. codingkey 프로토콜을 이용해 latitude,longitude로 바꿔보았다. 실무에서는 어떤 이름으로 바뀔지 몰라서 적용하는 연습을 해보았다..
바꾼 이름으로 출력되는것을 볼 수 있다.