我很难找到答案,因为我不知道该找什么。
在objective-C中,我会这样做以获取指向特定类的对象的指针:
CustomLabelClass *detailLabel = (CustomLabelClass *)[sortCell.contentView viewWithTag:kSortDetailLabelTag];
我想在斯威夫特也这样做。基本上,我在Sprite工具包场景中检测到冲突,然后尝试将节点(我知道节点属于一个特定类)传递给另一个函数。
if ((contact.bodyA.node?.isKindOfClass(TapCircleIcon)) != nil) {
updateOnScreenStatusFor(...)
我需要将TapCircleIcon传递到替换“…”的函数中。所以在Obj-c中,我会做如下的事情:
TapCircleIcon *tapCircle = (TapCircleIcon *)[contact.bodyA.node];
最佳答案
您不再需要Swift中的isKindOfClass
我假设node
是可选的。您可以将其强制转换为AnyObject?
并使用此if语句展开可选的。
if let tapCircleIcon = contact.bodyA.node as? TapCircleIcon {
updateOnScreenStatusFor(tapCircleIcon)
} else {
// node is not a TapCircleIcon
}