I was busy using NSURLProtocolClient
's URLProtocol function:
welf?.client?.URLProtocol(welf!, didReceiveResponse: operation.response, cacheStoragePolicy: NSURLCacheStoragePolicy.NotAllowed)
I was expecting it to return Void
. But to my surprise it returns Void?
Why is it necessary to make a distinction between Void
and Void?
I have read that Void
is a type alias for the empty tuple type. So, does this have something to do with a distinction between the empty tuple type vs nil?
This is simply because you are using Optional Chaining. The method returns Void
, but it is possible for the whole chain to return nil
before the method is ever called.
Essentially, a return value of Void
will mean the call was actually made (self and client both have values) while a nil
result will mean that one of those were nil
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With