2017-01-23 1 views
2

메신저 게임을하고 사용자가 orb를 수집 할 때 나는 한 번만 lael에 저장하고 싶습니다. 정수에 레이블을 저장해야하지만 구를 두 번 이상 저장하지 않도록하는 데 도움이 필요합니다. 스위프트 3에서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

기본적으로 내가 원하는 것은 사용자가 이미 orb를 수집하고 레이블에 +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 당신 btw 않았다. 사용자가 orb를 처음 수집 할 때 레이블에 +1을 추가하면 레이블에 +1을 더하면 안됩니다. – coding22

+0

그래서 사용자가 구를 얻을 때 레이블을 1로 설정 하시겠습니까? – Timmy

0

:

MyInt의 값을 검색하기 위해 나중에 키 MyInt

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

의 값 100을 설정하려면 여기를 사용하여 코드 임입니다. '당신을 의미한다 (I 번만 뭔가를 저장하는 플래그를 설정 어떻게 의미하지 않는 한 -

let myInt = UserDefaults.standard.integer(forKey: "MyInt") 
관련 문제