When using manual memory management we can write a call to a method which is not declared in the class. What we get during compilation in this case is warning only. This is what Wikipedia states on one of the most distinctive Objective-C features:
The Objective-C model of object-oriented programming is based on message passing to object instances. In Objective-C one does not simply call a method; one sends a message. This is unlike the Simula-style programming model used by C++. The difference between these two concepts is in how the code referenced by the method or message name is executed. In a Simula-style language, the method name is in most cases bound to a section of code in the target class by the compiler. In Smalltalk and Objective-C, the target of a message is resolved at runtime, with the receiving object itself interpreting the message
So why it is compilation error in ARC? What are the reasons to break such a powerful feature of the language? What's so important about that i'm not aware of? Can anybody explain this? Thanks