簡體   English   中英

Swift3 | Spritekit | 具有相同userdefaults鍵的兩個不同的NSInteger返回錯誤的保存值

[英]Swift3 | Spritekit | Two different NSIntegers with the same userdefaults key is returning wrong saved value

任何人都可以對此解釋以下內容,並有其他選擇嗎? 我剛剛舉了一個簡單的示例,因為我的代碼很大。

//Declare too variables
var levelStars = NSInteger()        
var levelScore = NSInteger()

//Load the variables
levelStars = UserDefaults.standard.integer(forKey: "1")
levelScore = UserDefaults.standard.integer(forKey: "1")

//Set the variables
levelStars = 3
levelScore = 1000

//Save the variables
UserDefaults.standard.set(levelStars, forKey: "1")
UserDefaults.standard.set(levelScore, forKey: "1")            

//Now when I call the following variable for levelStars
levelStars = UserDefaults.standard.integer(forKey: "1")
print(levelStars)    OUPUT: 1000  should be 3

對於關卡星,返回的值是1000,而應為3。 我以為是因為我使用了相同的密鑰,並且它只是用相同的密鑰值覆蓋了以前的任何用戶默認值。 但是我不明白為什么...這些值已設置為不同的NSIntegers。

不,您不需要字典。 我認為您需要一個示例來理解它:

//Declare too variables
…

//Load the variables
levelStars = UserDefaults.standard.integer(forKey: "com.yourcomp.yourapp.levelStars")
levelScore = UserDefaults.standard.integer(forKey: "com.yourcomp.yourapp.levelScore")

//Set the variables
…

//Save the variables
UserDefaults.standard.set(levelStars, forKey: "com.yourcomp.yourapp.levelStars")
UserDefaults.standard.set(levelScore, forKey: "com.yourcomp.yourapp.levelScore")            

//Now when I call the following variable for levelStars
levelStars = UserDefaults.standard.integer(forKey: "com.yourcomp.yourapp.levelStars")
print(levelStars)    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM