There is no escape
Update: This has been fixed!
Just in case others run into this issue, I wanted to document it here.
@noescape causes some curious behavior when nesting closures. It appears to cause a captured mutable local to become a separate copy, meaning changes that should be visible in one sibling closure aren't visible to the other.
. . .
Some overlooked goodies
Apple has delivered on their promise to be, well, swift with Swift. Version 1.2 has been released and includes a number of updates and syntax changes.
Some are less welcome, like requiring parameter names for closures in methods with optional parameters. Others are great additions like
Set or the ability for value-returning closures . . .
Some Handy Utilities
Just a quick post today. Here are some UIKit bits that should have always existed but after 8 years are still absent:
setHidden:animated:- Absolutely inexcusable that we still have basic
UIViewproperties that can't be animated
setEnabled:animated:- Ditto for
setEnabled:animated:- For some inexplicable . . .
Closures for fun and profit
This is the first in a series of short posts addressing easy things you might not know about. I'm going to try interleaving these thing the long-form major effort-posts.
Many people don't know that you can explicitly specify capture lists for closures in Swift.
A closure closes over . . .
I Want a Type-alee-uss-ess-ess for Christmas
Associated Types Series
Sometimes I think type theory is deliberately obtuse and all those functional programming hipster kids are just bull-shitting as if they understood one word of it. Really? You have a 5,000 word blog . . .
Or the case of the disappearing values
While trying to create a new view controller in Swift I ran into a curious problem with initialization. The class was a relatively simple subclass of
UITableViewController containing a property
var values:[String] and an initializer
required init(values:[String]) that delegated to the
super.init(style:UITableViewStyle) initializer. So far, so . . .
Interop is easy right up until it isn't
Swift and Objective-C use the same runtime. They use the same ARC memory management. They certainly interoperate far more than most languages except perhaps ones targeting the CLR. You might be forgiven for thinking that writing new classes in Swift would be easy, but there are several gotchas you might encounter: