... object 2.1
  The string should not contain any dots (that is, it should not contain the '.' character), because dots are used for advanced key value coding.

      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .

... read 2.2
  In more details, it will first try to get the object by calling the method getWindowDelegate of the #NSOwner; if the #NSOwner does not respond to that method, it will try windowDelegate; if the #NSOwner does not to respond to it either, it will try _getWindowDelegate, and then _windowDelegate; if the #NSOwner still does not respond to those methods, it will try to access the #NSOwner instace variable _windowDelegate, if any, and failing that, the instance variable windowDelegate. If all else fails, it will call the method handleQueryWithUnboundKey: (which by default usually raises an exception).

      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .

... target 2.3
  Unless the class of the source has implemented +accessInstanceVariablesDirectly to return NO, in which case the system skips trying to assign instance variables in this way.

      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .