1<html lang="en"> 2<head> 3<title>Traditional GNU Objective-C runtime API - Using the GNU Compiler Collection (GCC)</title> 4<meta http-equiv="Content-Type" content="text/html"> 5<meta name="description" content="Using the GNU Compiler Collection (GCC)"> 6<meta name="generator" content="makeinfo 4.13"> 7<link title="Top" rel="start" href="index.html#Top"> 8<link rel="up" href="GNU-Objective_002dC-runtime-API.html#GNU-Objective_002dC-runtime-API" title="GNU Objective-C runtime API"> 9<link rel="prev" href="Modern-GNU-Objective_002dC-runtime-API.html#Modern-GNU-Objective_002dC-runtime-API" title="Modern GNU Objective-C runtime API"> 10<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> 11<!-- 12Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 131998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 142010 Free Software Foundation, Inc. 15 16Permission is granted to copy, distribute and/or modify this document 17under the terms of the GNU Free Documentation License, Version 1.3 or 18any later version published by the Free Software Foundation; with the 19Invariant Sections being ``Funding Free Software'', the Front-Cover 20Texts being (a) (see below), and with the Back-Cover Texts being (b) 21(see below). A copy of the license is included in the section entitled 22``GNU Free Documentation License''. 23 24(a) The FSF's Front-Cover Text is: 25 26 A GNU Manual 27 28(b) The FSF's Back-Cover Text is: 29 30 You have freedom to copy and modify this GNU Manual, like GNU 31 software. Copies published by the Free Software Foundation raise 32 funds for GNU development.--> 33<meta http-equiv="Content-Style-Type" content="text/css"> 34<style type="text/css"><!-- 35 pre.display { font-family:inherit } 36 pre.format { font-family:inherit } 37 pre.smalldisplay { font-family:inherit; font-size:smaller } 38 pre.smallformat { font-family:inherit; font-size:smaller } 39 pre.smallexample { font-size:smaller } 40 pre.smalllisp { font-size:smaller } 41 span.sc { font-variant:small-caps } 42 span.roman { font-family:serif; font-weight:normal; } 43 span.sansserif { font-family:sans-serif; font-weight:normal; } 44--></style> 45<link rel="stylesheet" type="text/css" href="../cs.css"> 46</head> 47<body> 48<div class="node"> 49<a name="Traditional-GNU-Objective-C-runtime-API"></a> 50<a name="Traditional-GNU-Objective_002dC-runtime-API"></a> 51<p> 52Previous: <a rel="previous" accesskey="p" href="Modern-GNU-Objective_002dC-runtime-API.html#Modern-GNU-Objective_002dC-runtime-API">Modern GNU Objective-C runtime API</a>, 53Up: <a rel="up" accesskey="u" href="GNU-Objective_002dC-runtime-API.html#GNU-Objective_002dC-runtime-API">GNU Objective-C runtime API</a> 54<hr> 55</div> 56 57<h4 class="subsection">8.1.2 Traditional GNU Objective-C runtime API</h4> 58 59<p>The GNU Objective-C runtime used to provide a different API, which we 60call the “traditional” GNU Objective-C runtime API. Functions 61belonging to this API are easy to recognize because they use a 62different naming convention, such as <code>class_get_super_class()</code> 63(traditional API) instead of <code>class_getSuperclass()</code> (modern 64API). Software using this API includes the file 65<samp><span class="file">objc/objc-api.h</span></samp> where it is declared. 66 67 <p>The traditional API is deprecated but it is still supported in this 68release of the runtime; you can access it as usual by including 69<samp><span class="file">objc/objc-api.h</span></samp>. 70 71 <p>If you are using the traditional API you are urged to upgrade your 72software to use the modern API because the traditional API requires 73access to private runtime internals to do anything serious with it; 74for this reason, there is no guarantee that future releases of the GNU 75Objective-C runtime library will be able to provide a fully compatible 76<samp><span class="file">objc/objc-api.h</span></samp> as the private runtime internals change. It is 77expected that the next release will hide a number of runtime internals 78making the traditional API nominally supported but fairly useless 79beyond very simple use cases. 80 81 <p>Finally, you can not include both <samp><span class="file">objc/objc-api.h</span></samp> and 82<samp><span class="file">objc/runtime.h</span></samp> at the same time. The traditional and modern 83APIs unfortunately have some conflicting declarations (such as the one 84for <code>Method</code>) and can not be used at the same time. 85 86<!-- ========================================================================= --> 87 </body></html> 88 89