title: Random EXC_BAD_ACCESS in a place that it cannot happen
body: <p>I'm receiving EXC_BAD_ACCESS at random times in a place that I confirmed the exception should not happen.<br>
  The line its happening on is</p>
  
  <pre><code>`[[LevelEditorScene sharedLevelEditor] setObject:object forKey:key]`
  </code></pre>
  
  <p><code>LevelEditorScene</code> is a class, <code>setObject:forKey:</code> is a method I implemented (not the one from <code>NSObject</code>)<br>
  In GDB:</p>
  
  <pre><code>(gdb) print-object [LevelEditorScene sharedLevelEditor]
  &lt;LevelEditorScene = 06C3FF40 | Tag = -1&gt;
  </code></pre>
  
  <p>Means <code>LevelEditorScene sharedLevelEditor</code> is ok.</p>
  
  <pre><code>(gdb) print (bool)[[LevelEditorScene sharedLevelEditor]
                      respondsToSelector:@selector(setObject:forKey:)]
  $9 = true
  </code></pre>
  
  <p>Means it responds to the selector</p>
  
  <pre><code>(gdb) print-object object
  15
  (gdb) print-object key
  Maze Width
  </code></pre>
  
  <p>Means the arguments are ok (it shouldn't matter anyway).<br>
  What else can be causing the exception?</p>