Skip to content

Tag Archives: Xcode

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.

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 […]

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][1] and [tests for interfaces using Cocoa bindings][2]. 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 […]

When to use properties & dot notation

I listened to a recent episode of the [cocoaFusion:][1] 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 […]

Five years!

As of today, I’ve been with Apple for five years, working on developer tools. It’s been great and I look forward to many more years of improving the experience for people creating great Mac and iPhone software!

Go ahead and use Core Data

In a few weeks, it will be **four years** since Mac OS X 10.4 Tiger was first released. That was the first release to include Core Data. It will also be about **one and a half years** since Mac OS X 10.5 Leopard was released, with significant enhancements to the Core Data API. It’s pretty […]

Let’s merge managed object models!

There was a question recently on Stack Overflow asking how to handle cross-model relationships in managed object models. Now, the poster wasn’t asking about how to handle relationships across persistent stores — he was asking how to handle splitting a model up into pieces such that the pieces could be recombined. It turns out that […]

LLVM terminology

I thought the proper terminology was worth pointing out, since I’ve seen — and heard — some misuses lately. * **[LLVM][1]** is the Low-Level Virtual Machine and the project surrounding it. * **[LLVM-GCC][2]** is a compiler that uses GCC for its front-end and LLVM for its back-end. * **[Clang][3]** is the C language family front-end […]

Always use notification name globals, not string literals!

What’s wrong with this code? – (void)registerForNotificationsFromTask:(NSTask *)task ( { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(taskDidTerminateNotification:) name:@”NSTaskDidTerminateNotification” object:task]; } If you didn’t notice anything wrong, look again. What’s bad about this is that it’s passing a **string literal** instead of a **global variable** for the notification name. The code should really look like this: – (void)registerForNotificationsFromTask:(NSTask *)task […]

WWDC 2008

The time is upon us once again — WWDC time! As I have the past few years, I’ll be in San Francisco all week, staying at the Hotel Kabuki in Japantown. And of course, I’ll be around the conference all week — especially in the labs. Come by and say hi, and I’ll be happy […]