Skip to content

{ Author Archives }

Sad…

Cupertino is at one edge of the Santa Clara Valley, one of the best places on the continent to grow fruit. This display is in our Whole Foods, one of the (if not the) largest stores they have. All of the brands are local and don’t exist any more, because we paved them over in [...]

Milestone

I’ve had my car for 10 years, and my odometer rolled over 100,000 miles earlier today. Time to start thinking about a new car! Maybe a Tesla Model S, in a couple of years…

Tagged

When to use NSOperation vs. GCD

Mac OS X has a number of concurrency mechanisms, and that increases with Snow Leopard. In addition to run loops, threads (both Cocoa and POSIX) and operations, Snow Leopard adds Grand Central Dispatch (GCD), a very lightweight way to represent units of work and the style of concurrency they need, and have the system figure [...]

Tagged , , , , , ,

Welcome to Snow Leopard!

Last week, Mac OS X 10.6 Snow Leopard was released! Snow Leopard represents a lot of hard work by a lot of folks at Apple and at seeded third-party developers, and it really shows. Now that it’s shipped, I can actually talk about some of the especially cool things this release has for developers.

Tagged , , , , ,

Rebutting Big Nerd Ranch on Objective-C 2.0 dot notation

The Big Nerd Ranch weblog has a new post about Objective-C 2.0 dot notation. They advocate never using it and they’re completely wrong. Given my reaction on Twitter, several people have asked me to write a more in-depth rebuttal. I’ve already addressed when and why you should use Objective-C 2.0 properties and dot notation in [...]

Tagged , , , , ,

Using “en” instead of “English” for your Xcode project’s development region

Various pieces of Mac OS X and iPhone documentation have said for quite a while that the “preferred” method is now to use ISO-639-1 (two-letter) or ISO-639-2 (three-letter) language codes codes for localization purposes. Out of the box, Xcode’s project templates still use “English” rather than “en” as their default localization. How can you use [...]

Tagged , , ,

Unit testing Cocoa user interfaces: Use Check Methods

In the past, I’ve talked about ways to easily write unit tests for Cocoa applications, including tests for user interfaces using target-action and tests for interfaces using Cocoa bindings. There are some strategies you can apply to make writing tests for Cocoa code even easier, though. They’re just straightforward object-oriented programming, but sometimes we can [...]

Tagged , , , , , , , , , ,

Objective-C 2.0 properties and to-many relationships

I’ve occasionally been asked about the appropriate form for properties representing to-many relationships in Objective-C 2.0. Let’s start with the example of a recipe and its ingredients, represented by instances of the Recipe and Ingredient classes. @interface Recipe : NSObject { @private NSMutableSet *_ingredients; } @property (copy) NSSet *ingredients; @end This is a pretty straightforward [...]

Tagged , , , , ,

Singletons in Cocoa/Objective-C

I’ll preface this post with the standard advice: Don’t create singletons if you don’t absolutely have to. In general, if you’re creating a global “manager” object of some sort, you’re doing something wrong. That said, there’s still occasionally a reason to have such a global singleton, such as a “default something.” The sample code in [...]

Tagged , , ,

When to use properties & dot notation

I listened to a recent episode of the cocoaFusion: podcast about properties and dot notation today. There were a few interesting points brought up, but I felt a couple of the most important reasons to use @property declarations and dot notation weren’t addressed. The biggest reason I see to use a different notation for both [...]

Tagged , , , , , ,