从子类SKSpriteNode获取属性

时间:2014-02-01 10:30:13

标签: ios objective-c sprite-kit

我正在使用Sprite-Kit。我创建了SKObjectNode的子类SKSpriteNode,因为我想添加一个名为objectType的属性。

现在我有了这个属性,我做了:

SKObjectNode *myObject = [SKObjectNode spriteNodeWithColor.......];
myObject.objectType = ......;

我已成功向对象添加了一个新属性(成功)。


现在问题是,我想在didBeginContact方法中获取该属性 首先我尝试:

SKObjectNode *nodeA = contact.bodyA.node; // incompatible pointer types init .. with an expression type of SKNode *
NSLog("%@", nodeA.objectType) // no error

我运行了应用程序进行测试。

调用NSLog时,会引发unrecognized selector sent to instance错误,并终止该应用。

如何在SKObjectNode上获取objectType? 或者有更好的方法吗?我只想将该属性添加到我的对象中。

1 个答案:

答案 0 :(得分:0)

出现错误是因为contact.bodyA.node是一种SKNode而不是SKObjectNode,你必须告诉编译器它将是SKObjectNode,你可以使用强制转换:

SKObjectNode *nodeA = (SKObjectNode*)contact.bodyA.node;

现在编译器知道该对象是SKObjectNode的类型。