On Jun 29, 2015, at 15:23 , Rick Mann <rm...@latencyzero.com> wrote:
> 
> Oh, I think I figured it out. NSURL(string:) is optional, but 
> NSURLRequest(URL:) can't. Very unexpected, and the error message I was 
> getting did not clue me in.
> 
> ---------
> 
> 
> How are you supposed to do simple things like this, succinctly?
> 
>   let url = NSURL(string: "<some url>")
>   let req = NSURLRequest(URL: url)
>   self.webView.loadRequest(req)

It’s not clear what the solution (or problem) was, since you seem to have left 
some words out. In general, though, the pattern for this sort of thing is:

> if let a = somethingReturningOptionalA (),
>       let b = somethingReturningOptionalB (a),
>       let c = somethingReturningOptionalC (b) { 
>       somethingUsingC (c) 
> }

Note that each let clause can have an optional ‘where’ condition:

> if let a = somethingReturningOptionalA (),
>       let b = somethingReturningOptionalB (a) where b.size > 1000000, …


and you can start with a purely boolean clause:

> if onePlusOne == Two,
>       let a = somethingReturningOptionalA (), …

Alternatively, you can invert everything with ‘guard’ statements, picking off 
the nil values one by one, without any nesting, but that’s only appropriate 
when you can actually exit the scope if the guard fails:

> guard let a = somethingReturningOptionalA () else { break }
> guard let b = somethingReturningOptionalB (a) else {break }
> guard let c = somethingReturningOptionalC (b) else {break }
> somethingUsingC (c) 




_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to