I think it’s safe to say that MacOS is more source-code-compatible with NextStep than the iPhone is with MacOS. It’s full of all kinds of idiocy like this — Here’s how it goes on the desktop: NSColor fg = [NSColor colorWithCalibratedHue:h saturation:s brightness:v alpha:a]; [fg getRed:&r green:&g blue:&b alpha:&a]; [fg getHue:&h saturation:&s brightness:&v alpha:&a]; But on the phone: UIColor fg = [UIColor colorWithHue:h saturation:s brightness:v alpha:a]; const CGFloat *rgba = CGColorGetComponents ([fg CGColor]); // Oh, you wanted to get HSV? Sorry, write your own. It’s just full of nonsense like that. Do you think someone looked at the old code and said, “You know what, to make this code be efficient enough to run on the iPhone, we’re going to have to rename all the classes, and also make sure that the new classes have an arbitrarily different API and use arbitrarily different arguments in their methods that do exactly the same thing that the old library did! It’s the only way to make this platform succeed.”
jwz on the gratuitous api differences between osx and iphone / ipad