title: Strange Swift behaviour when using objc_getAssociatedObject()
body: <p>The behaviour can be observed by placing this code in a playground:</p>
  
  <pre><code>import Foundation
  import ObjectiveC
  
  class TestClass {}
  var obj = TestClass()
  
  let stringValue = "xyz"
  let key = "def"
  
  objc_setAssociatedObject(obj, key, stringValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  
  //let f = "f"
  let returnedString = objc_getAssociatedObject(obj, key)
  </code></pre>
  
  <p>This works and returns "xyz" from the <code>objc_getAssociatedObject</code> call. </p>
  
  <p>However, if you remove the comment from the <code>let f = "f"</code> line. The <code>objc_getAssociatedObject</code> call now returns nil.</p>
  
  <p>I'm baffled as to how setting a totally unrelated variable can effect the call. </p>
  
  <p>Any ideas? </p>