2017-01-23 41 views
2

我正在製作一款遊戲,當用戶收集一顆寶珠時,我希望它能保存在一個la but中,但只能保存一次。我把它保存在一個標籤中的整數,但需要幫助不要讓這個球體保存多次。下面是使用代碼即時通訊:如何在Swift中保存一個整數?

if firstBody.categoryBitMask == HeroCategory && secondBody.categoryBitMask == OrbCategory { 

     //saves orbs 

     UserDefaults().set(UserDefaults().integer(forKey: "saveOrbs")+1, forKey:"saveOrbs") 
     UserDefaults().integer(forKey: "saveOrbs").description 

     orbLabel.text = UserDefaults().integer(forKey: "saveOrbs").description 


} 
+0

之前檢查關鍵我沒有答案給你 - 除非你的意思是我該如何設置一個標誌,僅保存一次的東西(這意味着你」我真的做了一些可憐的設計) - 但我認爲你真的在問你的問題標題沒有說。請 - 更具體!如果您使用位掩碼,請添加更多代碼。如果您正在使用UserDefaults,請將其包含在標題中(如果適用)。謝謝。 – dfd

+0

爲什麼你爲此使用UserDefaults?看來,一個正常的變量就足夠了。在這種情況下,您可以使用可選變量,使檢查更容易。 – redent84

+0

基本上我想要的是,如果用戶已經收集了該球體,而不是爲標籤添加+1。我使用UserDefaults,所以我可以將整數保存到標籤。 – coding22

回答

4

嘗試設置它像

if UserDefaults.standard.value(forKey: "haveSavedOrb") == nil { 
UserDefaults.standard.set(true, forKey: "haveSavedOrb") 
UserDefaults.standard.set(orbs + 1, forKey: "saveOrbs") 
} 
+0

我不在家,所以我不能檢查方法名稱是否正確,但這應該給你一個想法,你的問題不是特定的,所以很抱歉,如果這不是你想要的。 – Timmy

+0

我沒有downvote你順便說一句。我只需要它在用戶第一次收集orb時向標籤添加+1,之後它不應該向標籤添加+1。 – coding22

+0

所以你想要標籤被設置爲1當用戶得到一個球體? – Timmy

0

在斯威夫特3:

要設置值100爲重點MyInt

UserDefaults.standard.set(100, forKey: "MyInt") 

後來檢索值MyInt

let myInt = UserDefaults.standard.integer(forKey: "MyInt") 
相關問題