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:]: unrecognized selector sent to instance 0x15d1e200
Значения в массиве непосредственно перед случается авария это:
AllItemsData(DSTBID: GGGGGGGGGGGG, CCAS: , BCAS:)
AllItemsData(DSTBID: HHHHHHHHHHHH, CCAS: , BCAS:)
Ваша структура не соответствует протоколу 'NSCoding'. – rmaddy
да :(Жаль, что структура никогда не соответствует NSCoding - я также ищу подходящее решение для этого - как сохранить и восстановить структуру (и вложенную структуру) от и до UserDefaults – muescha
на struct вы получите ошибку : non-class type «AllItemsData» не может соответствовать протоколу класса «NSCoding», поэтому у вас никогда не будет возможности реализовать «NSCoding» :( – muescha