iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 此类不是密钥的编码兼容键值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这个问题已被多次询问,但所有情况似乎与我的不同,我没有能力发表评论.

我正在尝试学习如何创建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.standard
defaults.value(forKey: "amountOfCoins")

代替

UserDefaults.value(forKey: "amountOfCoins")

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。