2017-01-19 5 views
0

Я хочу сохранить, сколько денег у пользователя есть и каждый раз, когда они открывают приложение, значение не изменяется, если оно не используется. В значительной степени, когда пользователь покупает что-то в магазине внутри приложения, значение снижается, и когда они возвращаются в приложение, значение остается там, где они останавливаются, и они могут продолжать продавать и покупать вещи. Мой код ниже. Я не могу понять, как сохранить его как целое число, чтобы я мог вернуть номер и повторно использовать его.Как сохранить и повторно использовать целые числа

var cashCounter = 50 

    //user spends in-app money 
    //user not has x money 

    UserDefaults.standard.set(cashLabel.text, forKey: "cash") 


override func viewDidLoad() { 
    super.viewDidLoad() 

    let numberObject = UserDefaults.standard.object(forKey: "cash") 
    if let cash = numberObject as? String { 
     scoreLabel.text = String(cash) 
    } 
+0

Вы сохраняете String (cashLabel.text), когда вы должны быть сохранение cashCounter который является вашим Integer –

+0

Просто используйте целое число для ключа, чтобы загрузить его , создайте String из этого и добавьте его на свой ярлык –

+0

Итак ... он работает в определенной точке. У меня проблема, когда после того, как пользователь тратит деньги, он автоматически возвращается обратно к 50 и вычитает из этого. Не новое значение, которое сохраняется. –

ответ

0

Обновление для быстрой 3,0

Чтобы установить целочисленное значение от пользователя по умолчанию:

self.setUserDefaultIntegerFromKey("Your Key", value: 1) 

Чтобы получить целочисленное значение от пользователя по умолчанию:

let value = self.getUserDefaultIntegerFromKey("Your Key") 

Способ получения целочисленное значение из USER DEFAULT:

func getUserDefaultIntegerFromKey(_ key : String) -> Int 
{ 
    var value : Int = 0 

    if (UserDefaults.standard.value(forKey: key) != nil) 
    { 
     value = UserDefaults.standard.value(forKey: key) as! Int 
     return value 
    } 
    return value 
} 

Метод установить Interer значение от пользователя по умолчанию:

func setUserDefaultIntegerFromKey(_ key : String ,value : Int) 
{ 
    UserDefaults.standard.set(value, forKey:key) 
    UserDefaults.standard.synchronize() 
} 
+1

Не нужно принудительно синхронизировать –

+0

Пользовательские значения по умолчанию имеют метод Integer для ключа для загрузки целых чисел, сохраненных в нем. –

+0

@LeoDabus Вызов 'synchronize()' не требуется? Бывает автоматически? – shallowThought