Modern Objective-C with iOS 5

Modern Objective-C contains subscripting support.

Instead of writing:

You can now write:

Unfortunately, this requires SDK support. While the OS X SDK provides this support, the iOS 5 SDK one doesn’t.

I’m going to show you how to add it.

Continue reading “Modern Objective-C with iOS 5”

Restart Xcode now

If you’re a heavy user of Xcode, you’ve probably had it go sideways on you. Thankfully, the crashes that plagued previous versions are mostly gone. But in its place are some awkward debugger connection failures, long delays and such.

Here’s how I created a shortcut key to relaunch Xcode.

You may find Programmer’s KillSwitch more practical, but this is a fun exercise in using Automator.

Ready? Here we go.

Continue reading “Restart Xcode now”

How to sync Xcode 4’s key bindings and code snippets

You can use Dropbox to synchronize Xcode 4’s key bindings, code snippets, named tabs, and font & color schemes. If you don’t have a Dropbox account yet, you can sign up here.

The secret is symlinks. These are different from the aliases you can create in Finder, so you’ll need to do this in the shell.

The problem with this is that Xcode 4 will not follow symlinks. Luckily, Dropbox will. (Note, however, that Dropbox will not follow aliases.)

Continue reading “How to sync Xcode 4’s key bindings and code snippets”

Wireless proxies may re-compress your files

If you’re downloading a file with widely-recognized lossy compression, your user’s cellular provider may interfere with it. This has always been true of internet connections; I first ran into this with dialup years ago. But it went away for a while with broadband, is back with wireless.

The simplest example is a JPEG. You may get the JPEG you expect, but it’s also possible for the proxy to deliver a smaller JPEG than you expect. The cell provider considers it “close enough”, and the doubly-compressed JPEG is smaller (and far uglier).

Continue reading “Wireless proxies may re-compress your files”

AFNetworking: a well managed open source project

Last week, I talked about Networking using NSURLConnection. In a future post, I’m going to talk about how to use AFNetworking. But first, I wanted to talk about why you should trust AFNetworking as a project in your project.

I haven’t been using github for long. That said, AFNetworking is the best-managed git project I’ve seen. It’s being managed so well that I wanted to write about it. In doing so, I’m not trying to praise Mattt Thompson’s efforts. It will probably come across that way, and he deserves it. Instead, I want to say that if you plan to maintain a git project, you should handle it as well as Mattt does.

Continue reading “AFNetworking: a well managed open source project”

Using blocks to handle errors

In the past, I’ve talked about Using blocks to remove redundancy. But now I want to explain the pattern I’ve adopted since, which is my favorite block pattern of all. Even though it, too, is all about removing redundancy: handling errors.

Although Objective-C supports exceptions, they’re not commonly used. A thrown exception is usually not caught, making it a fatal error.

Continue reading “Using blocks to handle errors”