Как получить доступ к свойствам объектов, хранящихся в UserDefaults - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу получить доступ к «fullname» в массиве пользователей в UserDefaults этим оператором

Optional({ message = Hello; success = true; user = { fullname = "xyz"; id = 0; }; })
if currentUser?[""] != nil {

// do something 
}

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Swift 3

Магазин

UserDefaults.standard.set(true, forKey: "Key") //Bool
UserDefaults.standard.set(1, forKey: "Key")  //Integer
UserDefaults.standard.set("TEST", forKey: "Key") //setObject

Получить

UserDefaults.standard.bool(forKey: "Key")
UserDefaults.standard.integer(forKey: "Key")
UserDefaults.standard.string(forKey: "Key")

Получить объект

var returnValue: [datatype]? = UserDefaults.standard.object(forKey: "key_name") as? [datatype]

Удалить

UserDefaults.standard.removeObject(forKey: "Key")

Удалить все ключи

if let appDomain = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: appDomain)
}
0 голосов
/ 27 февраля 2019

Предположим, что необязательный: Optional({ message = Hello; success = true; user = { fullname = “xyz”; id = 0; }; }) установлен как currentUser:

if let currentUser = currentUser { //get a not optional value of currentUser
    let fullname = currentUser["fullname"] //you will get an optional here
    if fullname != nil {
       print("Full name: \(fullname!)")
    } else {
       print("Full name wasn't provided")
    }
}

, но то же самое, что вы можете указать в одной строке, проверьте:

if let currentUser = currentUser, let fullname = currentUser["fullname"] {
    print("Full name: \(fullname)"
}

подробнее одополнительные материалы, которые вы можете прочитать в документах: https://developer.apple.com/documentation/swift/optional или в некоторых сообщениях в блоге, я рекомендую этот: https://hackernoon.com/swift-optionals-explained-simply-e109a4297298

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...