2017-05-16 48 views
0

我想随机选择为我的节奏游戏下降的圈子,但似乎无法使其工作。这是我得到的最接近:Swift 2错误:参数标签'(value :)'与任何可用的重载不匹配

var alternator = 0 
var fallTimer:NSTimer? 
var flag:Bool = true 

let circleIndexes = (0..<5).map { return NSNumber(value: $0) } 

let randomIndexes = GKRandomSource.sharedRandom().arrayByShufflingObjectsInArray(circleIndexes) as! [Int] 

func fallCircleWrapper() { 

    if (flag == true) { 
     self.alternator += 1 
    } else { 
     self.alternator -= 1 
    } 

    if (self.alternator == 0) { 
     flag = true 
    } else if (self.alternator == 5) { 
     flag = false 
    } 

    self.hitAreaArray[randomIndexes[self.alternator]].emitNote(self.texture!) 
} 

在此行中出现的错误:

let circleIndexes = (0..<5).map { return NSNumber(value: $0) } 

我是新来这个所以请原谅我,如果有一个简单的解决方案,我没有看到,并请如果有的话,随时提出一个更好的方法来解决这个问题。谢谢。

+3

你为什么要使用斯威夫特2?最新的稳定版本的Xcode甚至不支持Swift 2.x - 你真的应该更新到Swift 3. – Hamish

回答

1

这是Swift 3的代码。对于斯威夫特2的NSNumber的初始化是:

NSNumber(integer: ...) 

所以,你的行会变成:

let circleIndexes = (0..<5).map { return NSNumber(integer: $0) } 
+0

谢谢,这工作。但是,我有一个新问题。这一行:'let randomIndexes = GKRandomSource.sharedRandom()。arrayByShufflingObjectsInArray(circleIndexes)as! [Int]' 给出错误“实例成员'circleIndexes'不能用于类型'GameScene'。我应该怎么做? – shadokyr

+2

@shadokyr,请避免在注释中询问多个问题。如果还有其他问题,请打开另一个问题,以便与您未来相同问题的其他人将能够找到答案。 – brimstone

1

这是斯威夫特3码。

NSNumber(value:) 

斯威夫特2版:

NSNumber(integer:) 

你只需要改变这个

let circleIndexes = (0..<5).map { return NSNumber(integer: $0) } 
相关问题