puuurm / swift-weatherforecast

iOS app
1 stars 0 forks source link

Error Handling - Location Service #18

Closed puuurm closed 6 years ago

puuurm commented 6 years ago

목표:

  1. Error 프로토콜이 가지고 있는 localizedDescription 프로퍼티를 사용하여 MKError, CLError 타입 에러의 원인을 알아내도록 한다.
  2. SwiftMessages 라이브러리를 이용해 사용자에게 앱에서 발생한 에러 원인을 알려준다.

공부한 것:

enum MyError: LocalizedError {
    case unknown
    var errorDescription: String? {
        return NSLocalizedString("Unknown", comment: "")
    }
}

let e = MyError.unknown
print(e.localizedDescription) // Unknown

localizedDescription를 활용하려면 LocalizedError를 채택하여 errorDescription를 구현한다. 하지만 이는 enum만 적용된다.

해결:

extension CLError
extension MKError

위처럼 현재 이슈에서 처리할 에러 타입인 '구조체 타입'에는 해당되지 않는다. 따라서 localizedDescription를 구현한다.

보완점: Error Handling에 대해 더 좋은 방법이 있다면 적용할 것.