C99 initializers

You probably know CGRectMake, but did you know it’s not the only way to make rectangles? It’s not even the best way, really. There’s also C99 initializer syntax. The main advantage to the C99 syntax is that it gives you some very Objective-C like syntax, where the fields are close to the values rather than […]

When is id promoted to instancetype?

instancetype is a special type that can be returned from an Objective-C method. It specifies that the return is an object of the same type as the receiving class. In some cases, the compiler promotes an id return to an instancetype: For instance, despite the definition of [[NSString alloc] init], the compiler knows that it […]

Objective-C property proposal: mainthreadonly

I’d like to propose a new language feature for Objective-C, a property attribute that would indicate that a property should only be set from the main thread. Let me be clear: Objective-C does not do this. But wouldn’t it be cool if it did?

Learning a new programming language

It took me a while to learn Objective-C. I started at the most basic level, wondering at the language. What are these brackets? What’s with the @ signs? What’s the difference between a – and a +? These aren’t hard things to learn, but understanding the reasoning behind them helps. And then there’s a point […]