我有一个应用程序,我正在从Swift2转换为Swift3。我需要做的一件事是:
dict.enumerateKeysAndObjects({ (key, rotationString, stop) -> Void in
//code goes here to use key as an integer
)
我该怎么做?此外,rotationString
也将是一个整数。
背景: 在应用程序的Swift2版本中,我将数据保存为默认值:
func saveGame() {
let defaults = UserDefaults.standard
defaults.set(blackRotations, forKey: "blackRotations")
defaults.set(whiteRotations, forKey: "whiteRotations")
etc.
此处,whiteRotations
和blackRotations
是NSDictionary对象,其中保存的实际数据具有NSNumbers的键和NSNumbers的值。
所以,我需要做的是处理从UserDefaults加载已保存的游戏。保存游戏时,blackRotations和whiteRotations的值是字典。这本词典的结构是一堆整数对。您可以将它们视为保存为字典的整数查找表。
所以我真正要求的是如何从UserDefaults加载这些数据,并能够将键和值都视为整数。
可能的解决方案?我仍在努力让这个工作起作用,但无论如何我都会在这里发帖,希望它能帮助说明我想要做的事情。
在加载已保存状态的方法中,我认为我需要按照以下几点做一些事情:
if let blackDict = (defaults.dictionary(forKey: "blackRotations") as? [String:Int]) {
for (keyString, rotation) in blackDict {
blackRotations[Int(keyString)!] = rotation
}
}