2014-02-01 6 views
0

Я работаю с Sprite-Kit. Я создал подкласс SKObjectNode из SKSpriteNode, потому что я хотел добавить свойство под названием objectType.Получение свойств из подкласса SKSpriteNode

Теперь у меня есть это свойство, я делаю:

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 и прекращается приложение.

Как получить objectType на SKObjectNode? Или есть лучший способ сделать это? Я просто хочу добавить это свойство к моему объекту.

ответ

0

Ошибка возникает потому, что contact.bodyA.node является типом SKNode не SKObjectNode вы должны сообщить компилятору, что он собирается быть SKObjectNode делать, что вы можете использовать бросок:

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

Теперь компилятор знает, что объект является типом SKObjectNode.

Смежные вопросы