Sherlock Holmes and the Mystery of the Untappable Button

This is a fairly commonly-asked question that I encounter on Stack Overflow: My button (or some other user-interactive view) doesn’t respond when I tap it. And naturally enough, I have a commonly-given answer to go with it. In fact, I have a kind of catechism for helping people debug this situation. Even experienced developers can […]

Tricks for Testing External Links

On iOS, there is no deep mechanism for interapplication communication such as macOS provides through Apple events. Your app is sandboxed; other apps cannot drive it. There is, however, a simple and safe mechanism for letting another app send small messages to your app, namely through external links. We are all familiar with links. Suppose […]

The Joys of Logging

It’s no secret that I’m a huge fan of what I call “caveman” debugging, also known as logging. Real debugging involves breakpoints, stepping, examining the call stack, looking at variables, talking to LLDB; it’s powerful stuff, and should be part of every Xcode programmer’s toolbox. But sometimes the simplest way is to drop yourself a […]