title: Implicit conversion of an Objective-C pointer is disallowed with ARC
body: <p>I'm playing around with this <a href="http://www.alexandre-gomes.com/articles/chipmunk/" rel="nofollow">Chipmunk Tutorial</a> and I'm running into a problem with the following code (in section 5):</p>
  
  <pre><code>// Create our shape associated with the ball's body    
  cpShape *ballShape = cpCircleShapeNew(ballBody, 20.0, cpvzero);  
  ballShape-&gt;e = 0.5; // Elasticity  
  ballShape-&gt;u = 0.8; // Friction  
  ballShape-&gt;data = ball; // Associate with out ball's UIImageView  
  </code></pre>
  
  <p>In the final line ballShape->data = ball; I'm trying to link the data property of the ballShape object with the UIImageView object ball.  If I turn off ARC processing this works fine, but with ARC I can't do this, getting the error: </p>
  
  <pre><code>"Implicit conversion of an Objective-C pointer to 'cpDataPointer' (aka 'void *') is disallowed with ARC"
  </code></pre>
  
  <p>Since ballShape is a pointer, and the original object has a data property, is there any way I can assign the ball object to that property and make ARC happy?  I'm trying the following code:</p>
  
  <pre><code>ballShape-&gt;data = (__bridge cpDataPointer)ball; // Associate with out ball's UIImageView  
  </code></pre>
  
  <p>This makes the error vanish but is this the correct fix for this problem?  I've looked at Apple's ARC documentation but a lot of it is pretty much over my head at the moment.  Sorry in advance if this is a pretty basic question, but the "->" operator in C confuses and angers me. :)  </p>