具有类数组的 SKNode 子级
Posted
技术标签:
【中文标题】具有类数组的 SKNode 子级【英文标题】:SKNode children with array of classes 【发布时间】:2015-02-12 13:19:53 【问题描述】:我正在尝试编写一种方法来查找属于特定类的 SKNode 的子级 - 但我在这里遇到了 EXC 错误
有人知道为什么会这样吗?
import SpriteKit
extension SKNode
func children(#klasses: [AnyClass]) -> [SKNode]
var matchedNodes = [SKNode]()
for child in children as [SKNode]
for klass in klasses
if child.isKindOfClass(klass)
matchedNodes.append(child)
matchedNodes += child.children(klasses: klasses)
return matchedNodes
class Apple: SKNode
class Orange: SKNode
let apple = Apple()
let orange = Orange()
apple.addChild(orange)
let fruits = apple.children(klasses: [Apple.self, Orange.self])
错误:
执行被中断,原因:EXC_BAD_INSTRUCTION (code=EXC_i386_INVOP, subcode=0x0)。
【问题讨论】:
【参考方案1】:试试这个代码
extension SKNode
func children(#klasses: [AnyObject]) -> [SKNode]
var matchedNodes = [SKNode]()
for child in children as [SKNode]
for klass in klasses
if child.dynamicType === klass
matchedNodes.append(child)
matchedNodes += child.children(klasses: klasses)
return matchedNodes
【讨论】:
这行得通!我会赞成你的回答,但显然我需要 15 的声誉,哈哈 - 谢谢!以上是关于具有类数组的 SKNode 子级的主要内容,如果未能解决你的问题,请参考以下文章
当我在层次结构中添加额外的 SKNode 子级时,SKCropNode 失败
有两个div,一个父级,一个子级,父级有滚动条,样式如何写才能让子级的div固定在顶部,不随滚动条
如何从 SKNode.children 数组访问 SKNode 子类方法?