Previous: Modern GNU Objective-C runtime API, Up: GNU Objective-C runtime API

#### 8.1.2 Traditional GNU Objective-C runtime API

The GNU Objective-C runtime used to provide a different API, which we call the “traditional” GNU Objective-C runtime API. Functions belonging to this API are easy to recognize because they use a different naming convention, such as `class_get_super_class()` (traditional API) instead of `class_getSuperclass()` (modern API). Software using this API includes the file `objc/objc-api.h` where it is declared.

The traditional API is deprecated but it is still supported in this release of the runtime; you can access it as usual by including `objc/objc-api.h`.

If you are using the traditional API you are urged to upgrade your software to use the modern API because the traditional API requires access to private runtime internals to do anything serious with it; for this reason, there is no guarantee that future releases of the GNU Objective-C runtime library will be able to provide a fully compatible `objc/objc-api.h` as the private runtime internals change. It is expected that the next release will hide a number of runtime internals making the traditional API nominally supported but fairly useless beyond very simple use cases.

Finally, you can not include both `objc/objc-api.h` and `objc/runtime.h` at the same time. The traditional and modern APIs unfortunately have some conflicting declarations (such as the one for `Method`) and can not be used at the same time.