2017-01-23 3 views
2

Im делая игру, и когда пользователь собирает сферу, я хочу, чтобы она сохранялась в лапласе, но только один раз. Я получил его, чтобы сохранить целое число в метке, но вам нужна помощь, не позволяя сохранить сферу памяти более одного раза. Вот код Im используя:Как сохранить одно целое в 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

Я didnt downvote вы кстати. Мне нужно только добавить +1 к ярлыку, когда пользователь собирает сферу в первый раз, и после этого он не должен добавлять +1 к ярлыку. – coding22

+0

Итак, вы хотите, чтобы метка была установлена ​​равной 1, когда пользователь получает шар? – Timmy

0

В Swift 3:

Чтобы установить значение 100 для ключа MyInt

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

И позже, чтобы получить значение для MyInt.

let myInt = UserDefaults.standard.integer(forKey: "MyInt") 
Смежные вопросы