gpt4 book ai didi

swift - 对 AnyObject 失望?

转载 作者:可可西里 更新时间:2023-11-01 01:06:34 25 4
gpt4 key购买 nike

我有点不明白下面的代码是怎么回事。我的印象是 children 是一个可选的,基于 node.children(类型为 [AnyObject])是 [SKNode] 我看到的是 children 永远不会是 nil,这是因为 [AnyObject] 不包含任何类型的信息?即使我将 [SKNode] 更改为 [NSString] 它仍然会转到 (1)?

    if let children = node.children as? [SKNode] {
// (1) STUFF WITH SKNODE...
} else {
// (2) NOPE, ITS NOT AN SKNODE

最佳答案

node.children 不是可选的。它总是返回类型为 [AnyObject] 的数组。如果没有 child ,这个数组将有 0 个元素。如果有 child ,则此数组将包含 SKNode

可选的绑定(bind) if let children = node.children as? [SKNode] 将始终成功,因为空对象数组 [AnyObject] 可以转换为 [SKNode]

当我第一次看到 node.children 返回的是 [AnyObject] 而不是 [SKNode] 时,我觉得这很奇怪。然后我意识到这是一个与 Objective-C 一起工作的 Cocoa Touch 接口(interface),所以它不能返回 [SKNode] 即使这就是它包含的内容。

关于swift - 对 AnyObject 失望?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com