Fast enumeration on 10.4
Tomorrow I’m showing some software I wrote to a client, and I don’t want to lug the external Harddrive on which Leopard is installed with me. The laptop still runs 10.4 for testing Find It! Keep It!...
View ArticleTetratile update
When you replay a game, I’ve added a panel to let you single step through the moves you made, so that you can better learn how the game works. I just submitted this update to Apple for inclusion in the...
View ArticleArticle published in Mac Tech
Mac Tech just published my article on call stack logging which lets you see which function calls led to my NSLog replacement being invoked. The nice thing is that it works for C, C++ and Objective-C...
View ArticleSafari 4.0 incompatible with Find It! Keep It!
Just a quick note to mention that Find It! Keep It! is not compatible with Safari 4.0. When you install Safari 4.0, it updates WebKit in a manner that breaks Find It! Keep It!. I will fix this but...
View ArticleTeach yourself Cocoa Touch Programming in 24 hours
A few months ago, Pearson Education contacted me about writing a book about Cocoa Touch. I agreed because although I had a lot of experience on other platforms, I found Cocoa somewhat bewildering when...
View ArticleWhat to do if XCode won’t add a source code file to a Project
Sometimes XCode won’t let you add a source code file to a project when you click “Add, Existing Files…” from the “Groups & Files” context menu: you find that the filename is greyed out and cannot...
View Articlewww.stepwise.com gone
Unfortunately Scott Anguish has deleted stepwise, a very good Cocoa development website he ran. He explains his reasons here. As is often the case, Web Archive has only archived the first page — not...
View ArticleRagdoll Blaster 2
Ragdoll Blaster 2 was released yesterday. It contains some of my code: a number of months ago, my friends at Backflip Studios asked me to optimize the game’s physics engine (ODE), providing free cycles...
View ArticleA little trick
Most subclasses add instance variables. Objects initialized using initializer methods inherited from superclasses will only be partially initialized. Therefore you should override all initializers to...
View Article