сохранить и получить массив для пользователя по умолчанию с помощью swift - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу сохранить массив из json в значение по умолчанию для пользователя, я получу массив при его печати.Когда я получаю его в другом контроллере представления, я получаю только последний массив.Итак, как получить все данные пользователя по умолчанию в другом контроллере представления.

Вот как я сохраняю свой код в пользовательском настройке по умолчанию

контроллер первого просмотра

let kode_pelaksanaan = item["kode_pelaksanaan"].string
UserDefaults.standard.set(kode_pelaksanaan, forKey: "kode_pelaksanaan")

вывод:

kode_pelaksanaan : ELR2018120005
kode_pelaksanaan : ELR2018120004
kode_pelaksanaan : ELR2018120003
kode_pelaksanaan : ELR2018120001
kode_pelaksanaan : ELR2018050004

получить его в контроллере второго вида

let data = UserDefaults.standard.object(forKey: "kode_pelaksanaan")

let parameter =  [
            "request" : "{\"requestMethod\":\"detail_selflearning\",\"user\":\"\(user)\",\"kode_pelaksanaan\":\"\(data ?? "0")\"}"
        ]

получить получить

kode_pelaksanaan : ELR2018050004

я хочу вывести контроллер второго вида

kode_pelaksanaan : ELR2018120005
kode_pelaksanaan : ELR2018120004
kode_pelaksanaan : ELR2018120003
kode_pelaksanaan : ELR2018120001
kode_pelaksanaan : ELR2018050004

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Используйте вот так:

    // To save array in UserDefault
    let names = ["John", "Alex", "Matien", "Flex"]
    UserDefaults.standard.set(names, forKey: "names")

    // To get names array from UserDefault safely.
    if let allNames = UserDefaults.standard.object(forKey: "names") as? [String] {
        print(allNames)
    }
0 голосов
/ 18 декабря 2018

UserDefaults + Wrapper

    final class UDWrapper {
        class func setArray(key: String, value: NSArray) {
            setObject(key: key, value: value)
        }

        class func getArray(key: String) -> [Any]? {
            return UserDefaults.standard.array(forKey: key)
        }

    class func setObject(key: String, value: Any?) {
        if value == nil {
            UserDefaults.standard.removeObject(forKey: key)
        } else {
            UserDefaults.standard.set(value, forKey: key)
        }
    }
}

использование

  let array: NSArray = ["Hello, World!", 42]
  UDWrapper.setArray(key: "myarray", value: array)

  print(UDWrapper.getArray(key: "myarray") ?? "")
0 голосов
/ 18 декабря 2018

Ваш фрагмент кода не предоставляет достаточно информации.

Вот пример того, как массив хранится и извлекается из UserDefaults

var myArray = [0,1,2]

override func viewDidLoad()
{
    super.viewDidLoad()
    UserDefaults.standard.set(myArray, forKey: "yourArray")

    let data = UserDefaults.standard.object(forKey: "yourArray")!
    print(data)
}
...