I found this cool feature in Objective C where you can define two different categories that extend the same base class and both implement a method with the same name but with different return types. Which method gets called? What is the type of the return value? Only the ghost of Steve Jobs knows.