ios - 将 Swift 1 数组代码更新为 Swift 2 时出错

标签 ios arrays swift swift2

你好,我刚刚更新到 swift 2,我的数组中出现以下错误: “NSMutableArray”不能隐式转换为“[AnyObject]”;您是要使用“as”来显式转换吗?

func addAlien(){

    var alien:SKSpriteNode = SKSpriteNode(imageNamed: "cuadradoRojo")
    alien.name = "alien"
    alien.physicsBody = SKPhysicsBody(circleOfRadius: alien.size.width/2)
    alien.physicsBody?.dynamic = true
    var actionArray:NSMutableArray = NSMutableArray()
    var actionArray2:NSMutableArray = NSMutableArray()
    alien.removeFromParent()
    var alienAzul:SKSpriteNode = SKSpriteNode(imageNamed: "cuadradoAzul")
    alienAzul.name = "alien"
    alienAzul.physicsBody = SKPhysicsBody(circleOfRadius: alien.size.width/2)
    alienAzul.physicsBody?.dynamic = true
    alienAzul.removeFromParent()
    if gameOver == false{


        let minX = alien.size.width/2

        let maxX = self.frame.size.width - alien.size.width/2

        let rangeX = maxX - minX
        let position:CGFloat = CGFloat(arc4random()) % CGFloat(rangeX) + CGFloat(minX)

        alien.position = CGPointMake(position, self.frame.size.height + alien.size.height)
        alienAzul.position = CGPointMake(position, self.frame.size.height + alienAzul.size.height)
        var randomCirculo = arc4random_uniform(2)
        if randomCirculo == 0{
            self.addChild(alienAzul)
        }
        else {
            addChild(alien)
        }

        let minDuration = 3


        let duration = Int(minDuration)



        actionArray.addObject(SKAction.moveTo(CGPointMake(position, -alien.size.height), duration: NSTimeInterval(duration)))

        actionArray.addObject(SKAction.removeFromParent())
        actionArray2.addObject(SKAction.moveTo(CGPointMake(position, -alienAzul.size.height), duration: NSTimeInterval(duration)))

        actionArray2.addObject(SKAction.removeFromParent())

        alien.runAction(SKAction.sequence(actionArray as [AnyObject]))
        alienAzul.runAction(SKAction.sequence(actionArray as [AnyObject]))

    }    
}

我在这里找到了错误 alien.runAction(SKAction.sequence(actionArray as [AnyObject])) alienAzul.runAction(SKAction.sequence(actionArray as [AnyObject]))

最佳答案

代替

var actionArray:NSMutableArray = NSMutableArray()

使用

var actionArray = [SKAction]()

ObjectiveC 已更新为支持泛型 NSArray,大多数框架也已相应更新。

SKAction.sequence(NSArray)已更改为SKAction.sequence(Array<SKAction>)在 Swift 中,或 SKAction.sequence(NSArray<SKAction*>*)在 ObjC 中。

关于ios - 将 Swift 1 数组代码更新为 Swift 2 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046110/

相关文章:

ios - 如何在 iPhone 稍微滚动时停止 CLLocationManager 标题值更改。

ios - 在 GMSPoligon 中点击时更改打印文本。 swift

ios - UITableViewCell 子类的行为不像 UITableViewCells

ios - "Download our App"移动设备通知

javascript - 在内部函数内将对象返回给父函数?

计算出现次数并与 C 中的给定数组关联

arrays - Swift 4 数组查找或第一个

javascript - 为什么console.log 在作为参数传递给forEach 时不起作用?

Swift UnsafeMutableRawPointer 返回类而不是实例

ios - 动态更改所有 Uitableviewcells 高度以快速填充 uitableview