(Sundell's first example), I'm not seeing a 'nightmare'. It's twice as long but it still fits on one line (the way I format it), and it's only a linear problem (2N vs N), and it only occurs for a few lines of one method of some classes. For people who care, it's possible to write extensions (as Sundell does) to solve it.
There's definitely abstractions that are nightmarish to try to build in Swift and AppKit/UIKit, but I don't think this is one of them.
Core Data comes to mind, especially when dealing with multi-threading scenarios. For new projects, I switched to a thin wrapper around SQLite (SQLite.swift) and never looked back.
There's definitely abstractions that are nightmarish to try to build in Swift and AppKit/UIKit, but I don't think this is one of them.