Массив внутри модели Rss Feed и как я могу решить эту проблему? Я не могу получить данные с MVVM из JSON.
Ошибка: невозможно преобразовать значение типа '[Product]' в ожидаемый тип аргумента 'Product'
Извините за плохой английский.
Модель RSSFeed:
struct RSSFeed: Codable {
var title: String?
var description: String?
var icon: String?
var items: [Product]?
}
Модель продукта:
struct Product: Codable {
var id: String?
var title: String?
var specs: String?
var size: [String]?
var color: String?
var link: String?
var image: [String]?
var price: Price
}
Модель продукта:
struct ProductViewModel {
private var product: Product!
init(product: Product) {
self.product = product
}
var id: String {
return product.id ?? ""
}
var title: String {
return product.title ?? ""
}
var specs: String {
return product.specs ?? ""
}
var size: [String] {
return product.size ?? [""]
}
var link: String {
return product.link ?? ""
}
var imageURL: [String] {
return product?.image ?? [""]
}
var price: String {
let rawValue = product.price.rawValue
let currency = product.price.currency
return "\(currency)\(rawValue)"
}
}
Поставщик продукта (проблема здесь)
class ProductProvider {
static let product = ProductProvider()
private init() {
}
func getProduct() -> [ProductViewModel] {
var rssFeed = RSSFeed()
let jsonFile = Bundle.main.path(forResource: "products", ofType: "json")
let data = try? Data(contentsOf: URL(fileURLWithPath: jsonFile!))
do {
rssFeed = try JSONDecoder().decode(RSSFeed.self, from: data!)
} catch let error {
print(error.localizedDescription)
}
if let product = (rssFeed.items) {
return ProductViewModel(product: product)
//Error: Cannot convert value of type '[Product]' to expected argument type 'Product'
}
return [ProductViewModel]()
}
}
Как я могу получить данные JSON?