Swift: удалить только первый объект из NSUserDefaults - PullRequest
0 голосов
/ 18 декабря 2018

Я создаю приложение Bus Ticket Booking.поэтому у меня есть Dictionary с Array в нем.В котором недавний результат поиска маршрута сохраняется в NSUserDefaults.Теперь я хочу напечатать этот результат в один TableView.

Теперь в этом TableView я только хочу показать last 10 Это все, что я могу сделать идеально, но проблема в том, что каждый раз, когда результатсохранить в UserDefaults, чтобы увеличить размер UserDefaults, поэтому я просто хочу удалить Defaults Так что каждый раз, когда мой цикл element remove Repeat While вызывает номер элемента в UserDefaults (Если у меня есть 30 элементов, он запускается 20 раз, как).Это то, что я делаю для словаря.

    var arrSearch = [[String:Any]]()
    var searchBusVC:SearchBusViewController?

    override func viewDidLoad() {
            super.viewDidLoad()

            if let arr = UserDefault["Search"] {
                arrSearch.append(contentsOf: (arr as! [[String:Any]]))
                repeat{
                 arrSearch.removeFirst()

                }while (arrSearch.count > 10)

                arrSearch.reverse()
            }
                self.tblSearch.reloadData()
        }

Итак, я хочу удалить то же самое из UserDefaults Возможно ли это?Это мое изображение в виде таблицы.

enter image description here

1 Ответ

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

Если вы сохраняете [[String: Any]] в UserDefaults, это означает, что это обычный способ удаления объектов из массива.Как только вы закончите удаление объектов из массива, сохраните его в UserDefaults.

 var recentRecords:[[String: Any]]? {
      get {
        return UserDefaults.standard.array(forKey:"recentRecord")
       }
      set {
        var trimmed: [[String: Any]] = newValue
        // Trim last 10 objects from array
        if newValue.count >= 10 { 
         trimmed = newValue.suffix(10)
        } 

        UserDefaults.standard.set(trimmed, forKey: "recentRecord")
      }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...