У меня есть пользовательский класс, который я использую как Set<ListItem>
.Я хочу сохранить это в userDefaults.Тем не менее, я получаю Attempt to set a non-property-list object as an NSUserDefaults
ошибка при попытке.Я попытался изменить его на Array
, а затем сохранить его, но ошибка все та же.Я также попытался сохранить как данные после того, как увидел некоторые сообщения, опять же это выдает мне ошибку ниже.
NSForwarding: предупреждение: объект 0x600003bf9a00 класса 'iTunes_Search_Me.ListItem' не реализует methodSignatureForSelector: - проблема впереди
class ListItem: Codable ,Equatable, Hashable {
let wrapperType, kind: String?
let artistID, collectionID, trackID: Int?
let artistName, collectionName, trackName: String?
let trackViewURL: String?
let artworkUrl30, artworkUrl60, artworkUrl100: String?
let releaseDate: String?
let primaryGenreName: String?
var isSelected: Bool = false
enum CodingKeys: String, CodingKey {
case wrapperType, kind
case artistID
case collectionID
case trackID
case artistName, collectionName, trackName
case trackViewURL
case artworkUrl30, artworkUrl60, artworkUrl100, releaseDate, primaryGenreName
}
static func ==(lhs: ListItem, rhs: ListItem) -> Bool {
return lhs.trackID == rhs.trackID
}
func hash(into hasher: inout Hasher) {
hasher.combine(trackID)
}
}
Попытка установить объект списка не-свойств как NSUserDefaults