Не удается получить доступ к данным из Userdefaults - Swfit - PullRequest
0 голосов
/ 11 июня 2019

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

let data = UserDefaults.standard.object(forKey: identifier)

когда я вижу значение в данных, оно отображается как:

https://i.stack.imgur.com/UOjI8.png

тип data является

 po type(of: data)
 Swift.Optional<Any> . //Output

Как я могу получить доступ к pageNumber?

Ответы [ 2 ]

1 голос
/ 11 июня 2019

, поскольку данные - это словарь, чтобы иметь доступ к pageNumber, вам необходимо привести данные как Dictionary

guard let data = UserDefaults.standard.value(forKey: identifier) as? [String: Any] else { //fallback here if you need return }
let pageNumber = data["pageNumber"] as? Int ?? 0
0 голосов
/ 11 июня 2019

Просто используйте метод dictionary(forKey:) в экземпляре UserDefaults, чтобы напрямую получить dictionary из UserDefaults.

Возвращаемый dictionary имеет тип [String:Any]?

if let dict = UserDefaults.standard.dictionary(forKey: identifier) {
    let pageNumber = dict["pageNumber"] as? Int 
}

Примечание: pageNumber относится к типу Int?.Unwrap это использовать дальше.

...