One of the biggest advantages of Objective-C is that it allows programmers to choose the right combination of speed and flexibility, depending on their real needs. Code written in this language can enjoy the safety of compiler-checked expressions and method calls, where the compiler verifies every statement during the process of creating an executable. A lot of features, however, are runtime-driven, and this allows programmers to delay some decisions until a piece of code is executed.
The runtime system of Objective-C is the main tool used by programmers to switch between dynamic and static programming behaviors. In this chapter, you will explore some of the features provided by the runtime system. You will see ...