My question is : Why Apple prohibit some classes to be subclassed, for example MKMapView ?
What is the reason to do this please ?
thanks for your answers
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The short answer is that although they look like normal classes, they probably aren’t. This means that subclassing them without some knowledge of how they’re implemented probably won’t do what you’re expecting.
There are some, like the collection classes, that you can subclass but you need to follow some documented rules. And there are others that they just say “don’t.” I’ve seen developers ignore this advice only to find that their app breaks on the next iOS update.
The good news is that the way that these classes are implemented usually means that if you’re trying to subclass them you’re probably doing it wrong. Cocoa heavily relies on delegates and composition, which means that you tend to subclass system components far less often than you would in other frameworks such as Java and .Net.