Я пытаюсь передать 2 значения свойств из другого контроллера представления с помощью функции протокола, чтобы добавить объект (Book) к значению Dictionary в массиве словарей [категорий], которые я создал в главном. .
Объект Category имеет конструктор со словарем: имя ключа: String и значение: [Books]
Когда я пытаюсь сделать это с помощью функции протокола, появляется ошибка, когда я работаю со словарем для «Типа» Категория не соответствует протоколу «Последовательность»
Я действительно понятия не имею, что делать.
Я так новичок в этом, ПОЖАЛУЙСТА, ПОМОГИТЕ!
Спасибо!
// protocol to add new book
protocol AddBookDelegate {
func addNewBook(name: String, book: Book)
}
// mainViewController + categories array + protocol func
class BooksTableViewController: UITableViewController, StockQuantityDelegate, AddBookDelegate{
// categories array
var todasLasCategorias: [Category] = []
// protocol func to add a book
func addNewBook(name: String, book: Book) {
for eachCategory in todasLasCategorias{
for (myKey, myValue) in eachCategory{
if myKey == name{
myValue.append(book)
}
}
}
}
//Category declaration
class Category {
private var name: String
var books: [Book]?
init(name:String){
self.name = name
}
init(with dictionary: [String: AnyObject]){
self.name = dictionary["name"] as? String ?? "no name"
self.books = []
if let apendeoLibros = dictionary["books"] as? [[String: AnyObject]]{
for objectSelected in apendeoLibros{
let newBook = Book(with: objectSelected)
books?.append(newBook)
}
}
}
}