... 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.

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