title: Error on creating a KVO on a UIView
body: <p>I am adding a UIView called <code>bookViewContainer</code> to my view controller, and I want to detect when its scale changes using KVO. Here is my <code>viewDidLoad</code>:</p>
  
  <pre><code>- (void)viewDidLoad
  {
      [super viewDidLoad];
  
      bookViewContainer = [[UIView alloc] initWithFrame:self.view.bounds];
      [self.view addSubview:bookViewContainer];
  
      UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognized:)];
      [bookViewContainer addGestureRecognizer:tap];
  
      UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchRecognized:)];
      [bookViewContainer addGestureRecognizer:pinch];
  
      [bookViewContainer addObserver:self forKeyPath:@"transform.scale" options:NSKeyValueObservingOptionNew context:NULL];
  }
  </code></pre>
  
  <p>and my <code>observeValueForKeyPath</code>:</p>
  
  <pre><code>- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
  {
      NSLog(@"%@", object);
  }
  </code></pre>
  
  <p>However, when I run the project, I immediately get the error:</p>
  
  <blockquote>
    <p>An instance 0x1d844ca0 of class NSConcreteValue was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
     (
     Context: 0x0, Property: 0x1d844db0>
    )</p>
  </blockquote>
  
  <p>I've used KVO before (but never on <code>transform.scale</code>), and the view is definitely not being deallocated (I'm using ARC). I've tried using <code>scale</code> instead, but then nothing happens. What am I doing wrong?</p>