我正在使用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:我确实在代码中使用了这些变量。
答案 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 _ = ...
相同,评估右侧并丢弃结果。没有警告_ = ...
与最后一个相同,但在未使用结果时,可以对具有...
属性的函数发出警告。