我很难找到答案,因为我不知道该找什么。
在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
}

10-08 03:47