I am working on porting a Java codebase to Cocoa/Objective-C for use on desktop Mac OS X. The Java code has lots and lots of methods with checked exceptions li
Exceptions are probably the best approach, as the 64-bit Obj-C ABI (runtime) uses zero cost exceptions, so you get cleaner code at no real cost. Of course in 32-bit the old setjmp/longjmp exceptions are still in use and they don't interact with C++ so if that's a goal then you have a problem.