title: Incomplete definition of type "struct objc_method"
body: <p>I'm really confused with this problem. What I need to do is use some obj-c runtime feature in my project. Here is simple code in my .m file:</p>
  
  <pre><code>#import "Base.h"
  #import &lt;objc/runtime.h&gt;
  
  @implementation Base
  - (void)someMethod {
      NSUInteger numberMethods = 0;
      Method *classMethods = class_copyMethodList([self class], &amp;numberMethods);
      for (int i = 0; i &lt; numberMethods; i ++) {
          classMethods[i]-&gt;method_name; //incomplete definition of type "struct objc_method"
      }
  @end
  </code></pre>
  
  <p>I got the following error: incomplete definition of type "struct objc_method". After some inspecting objc/runtime.h file I found something like this:</p>
  
  <p>some code...</p>
  
  <pre><code>typedef struct objc_method *Method;
  </code></pre>
  
  <p>...some code...</p>
  
  <pre><code>struct objc_method {
      SEL method_name                                          OBJC2_UNAVAILABLE;
      char *method_types                                       OBJC2_UNAVAILABLE;
      IMP method_imp                                           OBJC2_UNAVAILABLE;
  }
  </code></pre>
  
  <p>Is this something like forward declaration problem, or something else?</p>