Which request method in SessionManager is called when a type conforms to both URLRequestConvertible and...
This seems like more a Swift language question...
Say, I have a struct that conforms to both URLRequestConvertible and URLConvertible protocols:
struct Event {
let title: String
}
extension Event: URLRequestConvertible {
}
extension Event: URLConvertible {
}
let anEvent = Event(title: "testing")
Alamofire.request(anEvent)
Which request
method will be called?
L132, or- L156
In my test, the one with URLRequestConvertible as input argument (L156) is called.
Can you give me some pointers where this has been discussed among Swift language community? (I am not very sure about the computer science term for this kind of problem)
swift alamofire swift-protocols
add a comment |
This seems like more a Swift language question...
Say, I have a struct that conforms to both URLRequestConvertible and URLConvertible protocols:
struct Event {
let title: String
}
extension Event: URLRequestConvertible {
}
extension Event: URLConvertible {
}
let anEvent = Event(title: "testing")
Alamofire.request(anEvent)
Which request
method will be called?
L132, or- L156
In my test, the one with URLRequestConvertible as input argument (L156) is called.
Can you give me some pointers where this has been discussed among Swift language community? (I am not very sure about the computer science term for this kind of problem)
swift alamofire swift-protocols
add a comment |
This seems like more a Swift language question...
Say, I have a struct that conforms to both URLRequestConvertible and URLConvertible protocols:
struct Event {
let title: String
}
extension Event: URLRequestConvertible {
}
extension Event: URLConvertible {
}
let anEvent = Event(title: "testing")
Alamofire.request(anEvent)
Which request
method will be called?
L132, or- L156
In my test, the one with URLRequestConvertible as input argument (L156) is called.
Can you give me some pointers where this has been discussed among Swift language community? (I am not very sure about the computer science term for this kind of problem)
swift alamofire swift-protocols
This seems like more a Swift language question...
Say, I have a struct that conforms to both URLRequestConvertible and URLConvertible protocols:
struct Event {
let title: String
}
extension Event: URLRequestConvertible {
}
extension Event: URLConvertible {
}
let anEvent = Event(title: "testing")
Alamofire.request(anEvent)
Which request
method will be called?
L132, or- L156
In my test, the one with URLRequestConvertible as input argument (L156) is called.
Can you give me some pointers where this has been discussed among Swift language community? (I am not very sure about the computer science term for this kind of problem)
swift alamofire swift-protocols
swift alamofire swift-protocols
asked Nov 26 '18 at 10:17
billibalabillibala
126214
126214
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This is called method overloading in object oriented programming.
Notice the call you make:
Alamofire.request(anEvent)
And the methods you have directed our attention to:
public func request( //(1)
_ url: URLConvertible,
method: HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
-> DataRequest
public func request(_ urlRequest: URLRequestConvertible) -> DataRequest //(2)
The call Alamofire.request(anEvent)
will call the second function as it matches the method signature.
You can learn about method overloading in almost any OOP learning material.
add a comment |
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53478957%2fwhich-request-method-in-sessionmanager-is-called-when-a-type-conforms-to-both-ur%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This is called method overloading in object oriented programming.
Notice the call you make:
Alamofire.request(anEvent)
And the methods you have directed our attention to:
public func request( //(1)
_ url: URLConvertible,
method: HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
-> DataRequest
public func request(_ urlRequest: URLRequestConvertible) -> DataRequest //(2)
The call Alamofire.request(anEvent)
will call the second function as it matches the method signature.
You can learn about method overloading in almost any OOP learning material.
add a comment |
This is called method overloading in object oriented programming.
Notice the call you make:
Alamofire.request(anEvent)
And the methods you have directed our attention to:
public func request( //(1)
_ url: URLConvertible,
method: HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
-> DataRequest
public func request(_ urlRequest: URLRequestConvertible) -> DataRequest //(2)
The call Alamofire.request(anEvent)
will call the second function as it matches the method signature.
You can learn about method overloading in almost any OOP learning material.
add a comment |
This is called method overloading in object oriented programming.
Notice the call you make:
Alamofire.request(anEvent)
And the methods you have directed our attention to:
public func request( //(1)
_ url: URLConvertible,
method: HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
-> DataRequest
public func request(_ urlRequest: URLRequestConvertible) -> DataRequest //(2)
The call Alamofire.request(anEvent)
will call the second function as it matches the method signature.
You can learn about method overloading in almost any OOP learning material.
This is called method overloading in object oriented programming.
Notice the call you make:
Alamofire.request(anEvent)
And the methods you have directed our attention to:
public func request( //(1)
_ url: URLConvertible,
method: HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
-> DataRequest
public func request(_ urlRequest: URLRequestConvertible) -> DataRequest //(2)
The call Alamofire.request(anEvent)
will call the second function as it matches the method signature.
You can learn about method overloading in almost any OOP learning material.
answered Nov 26 '18 at 11:00
jmsjms
35219
35219
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53478957%2fwhich-request-method-in-sessionmanager-is-called-when-a-type-conforms-to-both-ur%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown