2015-04-30 3 views
0

Я изо всех сил пытаюсь найти ответ для этого просто потому, что я не уверен, что искать.Как создать указатель/параметр pass для функции в Swift

В Objective-C Я хотел бы сделать что-то вроде этого, чтобы получить указатель на объект определенного класса:

CustomLabelClass *detailLabel = (CustomLabelClass *)[sortCell.contentView viewWithTag:kSortDetailLabelTag]; 

Я хотел бы сделать то же самое в Swift. В основном я обнаруживаю столкновение в Sprite Kit Scene, а затем пытаюсь передать узел (который, как я знаю, относится к определенному классу к другой функции).

if ((contact.bodyA.node?.isKindOfClass(TapCircleIcon)) != nil) { 
     updateOnScreenStatusFor(...) 

Мне нужно передать TapCircleIcon в функцию, заменяющую «...». Таким образом, в Obj-C Я хотел бы сделать что-то вроде:

TapCircleIcon *tapCircle = (TapCircleIcon *)[contact.bodyA.node]; 
+0

Итак, в основном, литой? –

+0

Да литье ...... – StuartM

ответ

2

Вам больше не нужно isKindOfClass в Swift. Я предполагаю, что node является AnyObject? необязательным. Вы можете указать его на TapCircleIcon и развернуть необязательный вариант с помощью этого оператора if.

if let tapCircleIcon = contact.bodyA.node as? TapCircleIcon { 
    updateOnScreenStatusFor(tapCircleIcon) 
} else { 
    // node is not a TapCircleIcon 
} 
+0

Это SKNode от столкновения. То же самое относится? – StuartM

+0

Является ли TapCircleIcon подклассом SKNode? Если это не так, SKNode не может быть передан в TapCircleIcon. – keithbhunter

+0

Да tapcricleicon является подклассом SKNode – StuartM