ios - 如何创建指针/传递参数以在 Swift 中运行

标签 ios objective-c swift pointers

我正在努力寻找这个问题的答案,因为我不确定要搜索什么。

在 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];

最佳答案

在 Swift 中您不再需要 isKindOfClass。我假设 node 是一个 AnyObject? 可选的。您可以将其转换为 TapCircleIcon 并使用此 if 语句解包可选。

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

关于ios - 如何创建指针/传递参数以在 Swift 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29973861/

相关文章:

iphone - 如何在 UIScrollView 中以编程方式滚动到某个位置

objective-c - iOS 应用程序中 _class_initialize 中的 semaphore_wait_signal_trap 死锁

ios - 如何使用 messageID 获取邮件的文件夹详细信息?

iphone - 在键盘上显示 View

ios - Swift 中的 UIActivityViewController 初始化方法效果不佳

swift - 获取 `(UInt8.min + UInt8.max) * 3` 到控制台

swift - 无法使用 ubuntu 14.04 在强制 swift2 中将类型 'NSString' 的值转换为类型 'String'

ios - 正确检查 NSDictionary 结构

ios - 来自 UIImage 或来自文件的 vImage - Swift 和 Accelerate 框架

ios - XCode 13 构建错误 - 无法找到或使用自动链接库 'swift_Concurrency' - React Native 0.64-65