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

struct AllItemsData { var DSTBID: String! var CCAS: String! var BCAS: String! } 

Это моя структура, из которой я создаю массив типа AllItemsDataArray = [AllItemsData()]

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

Я сделал это так:

 AllItemsDataArray.removeFirst() let archivedArray = NSKeyedArchiver.archivedData(withRootObject: All_ItemsDataArray) print(archivedArray) preference.set(archivedArray, forKey: allItemsDataKey) 

Но ошибка выглядит так:

ios [1540: 537869] – [_ SwiftValue encodeWithCoder:]: непризнанный селектор, отправленный в экземпляр 0x15d1e200

Значения в массиве непосредственно перед сбоем:

AllItemsData (DSTBID: GGGGGGGGGGGG, CCAS:, BCAS:)
AllItemsData (DSTBID: HHHHHHHHHHH, CCAS:, BCAS:)

Вам необходимо реализовать протокол NSCoding для вашего объекта и использовать class вместо struct

 class AllItemsData: NSObject, NSCoding { var DSTBID: String! var CCAS: String! var BCAS: String! required convenience init?(coder decoder: NSCoder) { let DSTBID = decoder.decodeObjectForKey("DSTBID") as? String, let CCAS = decoder.decodeObjectForKey("CCAS") as? String, let BCAS = decoder.decodeObjectForKey("BCAS") as? [String] self.init( DSTBID: DSTBID, CCAS: CCAS, BCAS: BCAS ) } func encodeWithCoder(coder: NSCoder) { coder.encodeObject(self.DSTBID, forKey: "DSTBID") coder.encodeObject(self.CCAS, forKey: "CCAS") coder.encodeInt(Int32(self.BCAS), forKey: "BCAS") } } 
  • Отображение UIImageView с использованием Swift от AWS
  • Как подсчитать количество изображений в папке в swift
  • Как изменить свойства динамически создаваемых меток
  • GKLeaderboard.localPlayerScore возвращает nil на iOS 8.1.3?
  • Как войти в Facebook без открытия приложения Facebook?
  • Распознаватель жестов для UIImageView в UIView
  • Как добавить аксессуар в пользовательскую ячейку?
  • Обнаружение касания Swift + Sprite Touch
  • Как добавить ассоциативные элементы массива в Swift
  • Swift 1.2: различное поведение между iOS 7.1 и 8.3 при удалении SKSpriteNode из родительского
  • Предикат перекрестных ссылок для запросов Realm в Swift
  • Interesting Posts

    iOS: уведомление Firebase не работает для пользовательского сегмента

    Контекст NSPrivateQueueConcurrencyType может работать только в функции executeBlock?

    Libetpan не работает на iOS5.1 xcode4.3 в приложении ReMail

    Навигационная панель не анимируется при использовании полупрозрачного штрих-кода

    IPad пейзаж показывает портрет кадра и границ

    Пакет IOS Google+ представляет пустой prefillText

    Можем ли мы использовать Sirikit для распознавания голоса

    Как вертикально просмотреть таблицу в виде таблицы в Objective C

    Лучший способ определить if ispad?

    Почему мой текст не правильно рисуется на сетчатке?

    Почему ненулевые номера не могут установить для свойства BOOL значение ДА?

    Запросить аннотации mapkit к серверу по положению и уровню масштабирования

    Почему размер текста в навигационной панели не зависит от настроек доступности в iOS 7/8?

    Инфраструктура приложений Firebase для iOS: значок приложения не отображается в результатах поиска

    Google Analytics для отслеживания IOS отправляется только в том случае, если доступен WiFi, иначе к кешу

    Давайте будем гением компьютера.