Я практикую функциональность CRUD в дизайне MVC. Ниже у меня есть модель Book
и BookShelfModelController
. Кажется, все работает правильно, но когда я печатаю на консоли, все, что я получаю, это [__lldb_expr_19.Book]. Если у меня есть несколько книг, я получаю несколько таких [__lldb_expr_19.Book, __lldb_expr_19.Book].
Этот другой ответ StackOverflow (Что такое lldb_expr в Swift Playground?) по сути говорит мне, что класс Book пуст, поэтому консоль не знает, как с ним обращаться. Но моя модель Book не пуста. Как мне сделать так, чтобы при печати bookShelfModelController.books
я получал добавленную книгу?
import Foundation
class Book {
init(title: String, author: String, genre: String) {
self.title = title
self.author = author
self.genre = genre
}
let title: String
let author: String
let genre: String
}
extension Book: Equatable {}
func ==(lhs: Book, rhs: Book) -> Bool {
if lhs.title != rhs.title { return false }
if lhs.author != rhs.author { return false }
if lhs.genre != rhs.genre { return false }
return true
}
class BookShelfModelController {
var books: [Book] = []
func create(book title: String, author: String, genre: String) -> Book {
let book = Book(title: title, author: author, genre: genre)
self.books.append(book)
return book
}
func delete(book: Book) {
if let index = self.books.firstIndex(where: { $0 == book }) {
self.books.remove(at: index)
}
}
}
let bookShelfModelController = BookShelfModelController()
let firstBook = bookShelfModelController.create(book: "Foo", author: "Bar", genre: "FooBar")
let secondBook = bookShelfModelController.create(book: "Foo2", author: "Bar2", genre: "FooBar2")
bookShelfModelController.delete(book: firstBook)
print(bookShelfModelController.books.count)
print(bookShelfModelController.books)