# Swift Nested Closure Captures

### There is no escape

April 23, 2015

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.

 . . .

# Swift 1.2

### Some overlooked goodies

April 14, 2015

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 . . .

# UIKit Missing Bits #1

### Some Handy Utilities

April 03, 2015

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 UIView properties that can't be animated
• setEnabled:animated: - Ditto for UIControl
• setEnabled:animated: - For some inexplicable . . .

# Swift Quickie: Capture Lists

### Closures for fun and profit

January 20, 2015

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.

## Capture Lists

Many people don't know that you can explicitly specify capture lists for closures in Swift.

A closure closes over . . .

# Swift: Associated Types

January 05, 2015

### 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 . . .

# Swift: Strange tales of initialization

### Or the case of the disappearing values

November 17, 2014

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 . . .

# Swift and ObjC: Gotcha!

### Interop is easy right up until it isn't

November 16, 2014

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: