Я потратил пару дней, пытаясь это исправить, но не могу.
Я получаю эту ошибку Тема 1: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0) , когдаЯ пытаюсь отобразить данные из Google Firestore в виде таблицы.
Я использую тот же код в других контроллерах представления (связывается с другой базой данных коллекции), и он прекрасно работает.Я не знаю, что происходит, и это действительно делает мою голову.
Ошибка появляется в этой области кода // Don't use fatalError here in a real app.
fatalError("Unable to initialize type \(suppliersProducts.self) with dictionary \(document.data())")
Вот полный код:
import UIKit, импорт XLPagerTabStrip, импорт Firebase, импорт FirebaseFirestore, импорт Kingfisher
, класс поставщика1022 *
}
А вот инструкции отладчика.
Пожалуйста, проверяйте все существующие использования Date, когда вы включаете новое поведение.В будущем выпуске поведение будет изменено на новое поведение, поэтому, если вы не выполните эти шаги, ВАШЕ ПРИЛОЖЕНИЕ МОЖЕТ ПРЕРЫВАТЬ.Неустранимая ошибка: невозможно инициализировать тип поставщиковПродукты со словарем ["Количество": 1 шт., "Квадрат изображения продукта": https://firebasestorage.googleapis.com/v0/b/honcho-app.appspot.com/o/supplierProducts%2FsquarePhotos%2FProduct-square-5.png?alt=media&token=beff70f8-93e1-44c2-8695-9af27efaccf5, "Рекомендуемая цена": 25000, "Категория": Личная гигиена, "Цена за единицу": 21000, «Бренд»: Laurier, «Идентификатор поставщика»: 101, «Прямоугольник изображения продукта»: https://firebasestorage.googleapis.com/v0/b/honcho-app.appspot.com/o/supplierProducts%2FrectanglePhotos%2FProduct-5.png?alt=media&token=520649d0-e76c-45c6-a4eb-c0bdd69eb0f1, «Описание»: мягкая, сухая двухслойная поверхность быстро впитывает кровь, а мощный центральный сердечник блокирует ее внутри, чтобы предотвратитьутечка, «Размер»: 8 площадок, «Имя»: активные дневные накладки, «Артикул устройства»: 8992727000048]: file /Users/eugenio/Documents/yProjects/Honcho/Xcode/merchant-bangkok-bank/merchant/allProductsTableViewController.swift, строка 88 2018-11-23 09: 15: 31.622656 + 1300 Youtap Merchant [12116: 323460] Неустранимая ошибка: невозможно инициализировать тип поставщиковПродукты со словарем ["Количество": 1 упаковка, "Квадрат изображения продукта": https://firebasestorage.googleapis.com/v0/b/honcho-app.appspot.com/o/supplierProducts%2FsquarePhotos%2FProduct-square-5.png?alt=media&token=beff70f8-93e1-44c2-8695-9af27efaccf5, «Рекомендуемая цена»: 25000, «Категория»: Средства личной гигиены, «Цена за единицу»: 21000, «Бренд»: Laurier, «Идентификатор поставщика»: 101, «Прямоугольник изображения продукта»: https://firebasestorage.googleapis.com/v0/b/honcho-app.appspot.com/o/supplierProducts%2FrectanglePhotos%2FProduct-5.png?alt=media&token=520649d0-e76c-45c6-a4eb-c0bdd69eb0f1, »Описание": Софи, сухой Двойной Айr Многослойная поверхность быстро впитывает кровь, и мощное центральное ядро блокирует ее внутри, чтобы предотвратить утечку, «Размер»: 8 площадок, «Имя»: активные дневные накладки, «Артикул устройства»: 8992727000048]: file / Users / eugenio / Documents / yProjects/Honcho/Xcode/merchant-bangkok-bank/merchant/allProductsTableViewController.swift, строка 88 (lldb)
Спасибо, куча за помощь
вот код поставщиковПродукты (словарь)
import Foundation
import Firebase
protocol DocumentSerializableSuppliersProducts {
init?(dictionary: [String: Any])
}
struct suppliersProducts {
var brand: String
var category: String
var description: String
var name: String
var productImageRectangle: String
var productImageSquare: String
var quantity: String
var size: String
var suggestedPrice: Int
var supplierID: Int
var unitPrice: Int
var unitSKU: Int
var dictionary: [String: Any] {
return [
"Brand": brand,
"Category": category,
"Description": description,
"Name": name,
"Product Image Rectangle": productImageRectangle,
"Product Image Square": productImageSquare,
"Quantity": quantity,
"Size": size,
"Suggested Price": suggestedPrice,
"Supplier ID": supplierID,
"Unit Price": unitPrice,
"Unit SKU": unitSKU
]
}
}
extension suppliersProducts: DocumentSerializableSuppliersProducts{
init?(dictionary: [String : Any]) {
guard let name = dictionary["Name"] as? String,
let brand = dictionary["Brand"] as? String,
let category = dictionary["Category"] as? String,
let productImageRectangle = dictionary["Product Image Rectangle"] as? String,
let productImageSquare = dictionary["Product Image Square"] as? String,
let quantity = dictionary["Quantity"] as? String,
let size = dictionary["Size"] as? String,
let suggestedPrice = dictionary["Suggested Price"] as? Int,
let supplierID = dictionary["Supplier ID"] as? Int,
let unitPrice = dictionary["Unit Price"] as? Int,
let unitSKU = dictionary["Unit SKU"] as? Int
else {return nil}
let description = dictionary["Description"] as? String
let defaultDescription: String = description ?? "This item has not yet been properly described by our team of writing monkeys"
self.init(brand: brand, category: category, description: defaultDescription, name: name, productImageRectangle: productImageRectangle, productImageSquare: productImageSquare, quantity: quantity, size: size, suggestedPrice: suggestedPrice, supplierID: supplierID, unitPrice: unitPrice, unitSKU: unitSKU)
}
}