title: Why can -respondsToSelector: instance method be used on class name or class object?
body: <p>In Programming in Objective C, 4e, Chapter 9, Program 9.3:</p>
  
  <pre><code>#import "Square.h"
  int main (int argc, char * argv[])
  {
     @autoreleasepool {
        Square *mySquare = [[Square alloc] init];
        ...
        // respondsTo:
        if ( [mySquare respondsToSelector: @selector (setSide:)] == YES )
           NSLog (@"mySquare responds to setSide: method");
        ...
        if ( [Square respondsToSelector: @selector (alloc)] == YES )
           NSLog (@"Square class responds to alloc method");
        ...
     }
     return 0;
  }
  </code></pre>
  
  <p>Q1:</p>
  
  <p>Since <code>-respondsToSelector:</code> is an instance method, not a class method, why would it be possible to use it on <code>Square</code> class directly?</p>
  
  <p>Q2:</p>
  
  <p>The book says you can use <code>Square</code> here instead of <code>[Square class]</code>. Is it only a exceptional shortcut, or is there any mechanism behind this?</p>
  
  <p>Any help would be really appreciated! Thanks in advance!</p>