我正在玩这个Chipmunk Tutorial,我遇到了以下代码的问题(第5部分):
// Create our shape associated with the ball's body
cpShape *ballShape = cpCircleShapeNew(ballBody, 20.0, cpvzero);
ballShape->e = 0.5; // Elasticity
ballShape->u = 0.8; // Friction
ballShape->data = ball; // Associate with out ball's UIImageView
在最后一行ballShape-> data = ball;我正在尝试将ballShape对象的data属性与UIImageView对象球链接起来。如果我关闭ARC处理,这工作正常,但使用ARC我不能这样做,得到错误:
"Implicit conversion of an Objective-C pointer to 'cpDataPointer' (aka 'void *') is disallowed with ARC"
由于ballShape是一个指针,原始对象有一个data属性,有什么办法可以将球对象分配给该属性并使ARC快乐?我正在尝试以下代码:
ballShape->data = (__bridge cpDataPointer)ball; // Associate with out ball's UIImageView
这会使错误消失,但这是解决此问题的正确方法吗?我看过Apple的ARC文档,但很多内容现在已经超出了我的想象。如果这是一个非常基本的问题,请提前抱歉,但是“ - >” C中的操作员混淆并激怒了我。 :)
答案 0 :(得分:0)
如果您只想存储指针,只要您保留对ball
的引用,它就是正确的。