Я получаю следующую ошибку при попытке закодировать объект.
'NSInvalidArgumentException', причина: 'Недопустимый тип в записи JSON (__SwiftValue)'
Определение этого объекта приведено ниже: -
public struct Item: Codable {
public var _id: Int
public var name: String
public var price: Float
public init(_id: Int, name: String, price: Float) {
self._id = _id
self.name = name
self.price = price
}
public enum CodingKeys: String, CodingKey {
case _id = "id"
case name
case price
}
}
И я пытаюсь закодировать это:
public func createDictionaryRequestForAddingItems(item : Item)->Data{
let dictRequest = ["item":item];
let dataRequest = try! JSONSerialization.data(withJSONObject: dictRequest, options: []);
return dataRequest;
}
Если вместо объекта-элемента я использую простой объект, такой как String или Int, то все это работает, но когда для запроса требуется объект Item
(экземпляр IS-A Codable
), он дает вышеуказанная ошибка.
JSONSerialization.isValidJSONObject(item)
всегда выдает false, даже для запросов, которые корректно кодируются.