ios – 此类不是密钥的编码兼容键值

ios – 此类不是密钥的编码兼容键值,第1张

概述我知道这个问题已被多次询问,但所有情况似乎与我的不同,我没有能力发表评论. 我正在尝试学习如何创建UserDefault变量,但它一直在崩溃.我在日志中得到的错误是: *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSUserDefaults 0x1097d6bf8> va 我知道这个问题已被多次询问,但所有情况似乎与我的不同,我没有能力发表评论.

我正在尝试学习如何创建UserDefault变量,但它一直在崩溃.我在日志中得到的错误是:

*** Terminating app due to uncaught exception 'NSUnkNownKeyException',reason: '[<NSUserDefaults 0x1097d6bf8> valueForUndefinedKey:]: this class is     not key value Coding-compliant for the key AmountOfCoins.'

以下是我的代码中使用UserDefault的所有时间:

class GameScene: SKScene,SKPhysicsContactDelegate {    var CoinCount = Int()

^我在这里定义了一个变量,以便更容易地访问硬币计数.

overrIDe func dIDMove(to vIEw: SKVIEw) {    if let x = UserDefaults.value(forKey: "AmountOfCoins") as? Int{        CoinCount = x    }

^这用于检查AmountOfCoins是否为空.我想我可能在这里犯了一个错误.

func startGame() {    score = 0    CoinCount = UserDefaults.value(forKey: "AmountOfCoins") as! Int    scorevIEw.text = "\(score)"    coinvIEw.text = "\(UserDefaults.value(forKey: "AmountOfCoins"))"}

^这是一个在游戏启动时调用的函数

func addCoin(){    run(SKAction.playSoundfilenamed("Coin.wav",waitForCompletion: false))    CoinCount += 1    UserDefaults.standard.set(CoinCount,forKey: "AmountOfCoins")    scorevIEw.text = "\(UserDefaults.value(forKey: "AmountOfCoins"))"    coinvIEw.text = "\(CoinCount)"

^最后这里是一个需要添加硬币时调用的函数.

我已经阅读了一些修复此错误的不同方法,但我真的不明白它是如何工作的.

解决方法 正如人们在上面的评论中所说,它应该是这样的

let defaults = UserDefaults.standarddefaults.value(forKey: "AmountOfCoins")

代替

UserDefaults.value(forKey: "AmountOfCoins")
总结

以上是内存溢出为你收集整理的ios – 此类不是密钥编码兼容键值全部内容,希望文章能够帮你解决ios – 此类不是密钥的编码兼容键值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1209531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存