我正在使用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?
或者有更好的方法吗?我只想将该属性添加到我的对象中。
答案 0 :(得分:0)
出现错误是因为contact.bodyA.node
是一种SKNode而不是SKObjectNode,你必须告诉编译器它将是SKObjectNode,你可以使用强制转换:
SKObjectNode *nodeA = (SKObjectNode*)contact.bodyA.node;
现在编译器知道该对象是SKObjectNode的类型。