Swift 2中的初始化问题

时间:2015-10-11 22:45:20

标签: swift initialization swift2

我正在使用Swift 1和Xcode 6进行游戏,一切都很完美。但是当我更新到XCode 7和Swift 2时,我遇到了一个奇怪的问题。在我的游戏中,我有一些NSTimers保存在变量中以产生敌人。其中一个变量的例子是这样的:

var firstTimer = NSTimer.scheduledTimerWithTimeInterval(actualTime, target: self, selector: Selector("SpawnEnemy"), userInfo: nil, repeats: true)

当我更新时,这种类型的每个变量(我都喜欢4)都有一个问题:" 变量的初始化" firstTimer"从未使用过;考虑替换为" _"或删除它。"

我无法将每个变量的名称更改为" _",我从来没有必要对其进行初始化。 到底是怎么回事?为什么以前没发生这种情况呢?

btw:我确实在代码中使用了这些变量。

1 个答案:

答案 0 :(得分:3)

错误说明了一切,你根本没有使用代码中的值。如果你打算永远不要停止计时器,你可以省略这个变量的声明:

vvod = input('Input: ')
change_map = {'a':'bg', 'b':'bg', 'c':'bg'}
vvod_a = [change_map.get(item, item) for item in vvod]
print(vvod_a)

但如果你想稍后停止它,你应该保存它:

NSTimer.scheduledTimerWithTimeInterval(actualTime, target: self, selector: Selector("SpawnEnemy"), userInfo: nil, repeats: true)

你能做什么:

  • class MyViewController { var timer : NSTimer? func startTimer() { timer = NSTimer.scheduledTimerWithTimeInterval(actualTime, target: self, selector: Selector("SpawnEnemy"), userInfo: nil, repeats: true) } func stopTimer() { timer?.invalidate() } } 会发出警告,表示您没有使用该值(如果您没有),并且警告var timer = ...从未更改,应该是timer
  • let发出警告,表示您未使用该值(如果没有)
  • let timer = ...let _ = ...相同,评估右侧并丢弃结果。没有警告
  • 只有_ = ...与最后一个相同,但在未使用结果时,可以对具有...属性的函数发出警告。