Generate your own Error code in swift 3 Generate your own Error code in swift 3 ios ios

Generate your own Error code in swift 3


In your case, the error is that you're trying to generate an Error instance. Error in Swift 3 is a protocol that can be used to define a custom error. This feature is especially for pure Swift applications to run on different OS.

In iOS development the NSError class is still available and it conforms to Error protocol.

So, if your purpose is only to propagate this error code, you can easily replace

var errorTemp = Error(domain:"", code:httpResponse.statusCode, userInfo:nil)

with

var errorTemp = NSError(domain:"", code:httpResponse.statusCode, userInfo:nil)

Otherwise check the Sandeep Bhandari's answer regarding how to create a custom error type


You can create a protocol, conforming to the Swift LocalizedError protocol, with these values:

protocol OurErrorProtocol: LocalizedError {    var title: String? { get }    var code: Int { get }}

This then enables us to create concrete errors like so:

struct CustomError: OurErrorProtocol {    var title: String?    var code: Int    var errorDescription: String? { return _description }    var failureReason: String? { return _description }    private var _description: String    init(title: String?, description: String, code: Int) {        self.title = title ?? "Error"        self._description = description        self.code = code    }}


You should use NSError object.

let error = NSError(domain: "", code: 401, userInfo: [ NSLocalizedDescriptionKey: "Invalid access token"])

Then cast NSError to Error object.