2017-08-17 100 views
0

尝试使用keyValue对从iCloud检索int。有人可以向我解释为什么这是崩溃的错误:iCloud keyValue使我的游戏崩溃

'[<NSUbiquitousKeyValueStore 0x170287e40> valueForUndefinedKey:]: this class is not key value coding-compliant for the key current.' 

它在我以前的项目中工作得很好。

var iCloudKeyStore: NSUbiquitousKeyValueStore = NSUbiquitousKeyValueStore() 

func loadSavedData() { 

    if let cloudCurrent = iCloudKeyStore.value(forKey: "current") as! Int? { /* <-------- Crashes on this line */ 
     print("Current Level Found From iCloud: \(cloudCurrent)") 
     currentLevel = cloudCurrent 
    }else{ 
     print("No Current Level Found") 
    } 

    if let cloudAchieved = iCloudKeyStore.value(forKey: "achieved") as! Int? { 
     print("Current Level Found From iCloud: \(cloudAchieved)") 
     levelAchieved = cloudAchieved 
    }else{ 
     print("No Achieved Level Found") 
    } 

回答

1

value(forKey :)用于动态访问对象的实例变量。 I. e。键 - 值编码。

该对象上没有名为“current”的实例变量。你想访问商店中存储的值,根据文档应该使用object(forKey :)来完成。