Skip to content

Instantly share code, notes, and snippets.

@ukitaka
Last active January 6, 2017 06:12
Show Gist options
  • Select an option

  • Save ukitaka/dbc3c3724eb40b0b73670eefe58efc75 to your computer and use it in GitHub Desktop.

Select an option

Save ukitaka/dbc3c3724eb40b0b73670eefe58efc75 to your computer and use it in GitHub Desktop.
Override same var name
protocol BodyParameters { }
struct JSONBodyParameters: BodyParameters { }
struct MultipartFormDataBodyParameters: BodyParameters { }
protocol Request {
var bodyParameters: BodyParameters? { get }
}
extension Request {
var bodyParameters: BodyParameters? {
return nil
}
}
struct Request1: Request {
let bodyParameters: JSONBodyParameters?
init() {
self.bodyParameters = JSONBodyParameters()
}
}
struct Request2: Request {
let bodyParameters: BodyParameters?
init() {
self.bodyParameters = JSONBodyParameters()
}
}
let request1 = Request1()
request1.bodyParameters // JSONBodyParameters
(request1 as Request).bodyParameters // nil
let request2 = Request2()
request2.bodyParameters // JSONBodyParameters
(request2 as Request).bodyParameters // JSONBodyParameters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment