Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 将成员添加到节点_Swift_Sprite Kit_Member - Fatal编程技术网

Swift 将成员添加到节点

Swift 将成员添加到节点,swift,sprite-kit,member,Swift,Sprite Kit,Member,我想向节点添加一个成员 我想这会管用的: extension SKNode { var obstacleType:String = "" } 但它没有 我想添加这样的成员: ANode.obstacleType == "Stone" 就像这样: if ANode.name == "Obstacle" && ANode.obstacleType == "Stone" { /* Do Something */ } 有简单的方法吗?

我想向节点添加一个成员
我想这会管用的:

extension SKNode    {  
    var obstacleType:String =   ""  
}
但它没有
我想添加这样的成员:

ANode.obstacleType == "Stone" 
就像这样:

if ANode.name == "Obstacle" && ANode.obstacleType == "Stone" {  
    /* Do Something */  
}  

有简单的方法吗?

不能存储属性,只能计算属性

要解决此问题,只需使用userData:

extension SKNode    {  
    var obstacleType:String
    {
        get
        {
            return self.userData?["type"] ?? ""
        }
        set
        {
            self.userData = self.userData ?? [:]() //Guarentee it is created
            self.userData!["type"] = newValue
        }
    }  
}

不能在扩展中添加属性。您只能添加计算属性,但这些属性是get only(只读)。我认为没有其他方法可以做到这一点