Swift 3 API Parity: Use URLRequest rather than NSURLRequest in APIs #600
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A number of the URLSession APIs should now take
URLRequest
rather thanNSURLRequest
orNSMutableURLRequest
as parameters. Examples of this include:This PR switches over to using
URLRequest
rather than the existing use ofNSURLRequest
.I've additionally added tests for
URLRequest
in addition toNSURLRequest
(which still exists) by duplicating the existingNSURLRequest
tests.Whilst doing this I hit a crash when trying to mutate a value in a copied
URLRequest
. This is caused because, when we call_appyMutation
for a non-uniquely referenced value, we create a new_MutableHandle
. The_MutableHandle
constructor callscopy()
on the referent (in our case aNSMutableURLSession
). CallingNSMutableURLSession.copy()
actually returns aNSURLSession
(as it inherits copy() from NSURLSession), which fails because its not aMutableType
. I've fixed this by overriding copy inNSMutableURLSession
to returnmutableCopy()
.