Пожалуйста, взгляните на мой код:
Нет ошибок
struct Person: Codable {
var name: String
var age: Double
var birthday: Date
var selectedItem: Car
}
struct Car: Codable {
var companyName: String
var creationDate: Date
}
struct iPhone: Codable {
var model: String
var creationDate: Date
var isScreenBroken: Bool = true
}
Ошибка сборки
struct Person: Codable { // "Type 'Person' does not conform to protocol 'Decodable'", "Type 'Person' does not conform to protocol 'Encodable'"
var name: String
var age: Double
var birthday: Date
var selectedItem: Codable // I've changed this line
}
struct Car: Codable {
var companyName: String
var creationDate: Date
}
struct iPhone: Codable {
var model: String
var creationDate: Date
var isScreenBroken: Bool = true
}
Тип «Человек» не соответствует протоколу «Декодируемый»
Тип «Человек» не соответствует протоколу «Кодируемый»
Я не понимаю, почему это происходит. Он знает, что selectedItem
соответствует Encodable
и Decodable
:
var selectedItem: Codable
Я новичок в протоколах в Swift, поэтому, отвечая, постарайтесь объяснить, что здесь происходит.
Спасибо!
var selectedItem: Codable
- person אורי orihpt   schedule 01.01.2021selectedItem
в определенный тип, который не объявлен. Простое заявление о том, что оно соответствуетCodable
, не поможет в декодировании, если оно не имеет типа. - person Chris   schedule 01.01.2021selectedItem
, который соответствует Codable, или установить его на конкретный тип, такой какInt
илиString
. - person Chris   schedule 01.01.2021