У меня есть протокол «Visual», который реализован двумя классами: Point2D и Square
protocol Visual {
var text: String { get }
}
class Point2D : Visual {
var text: String
var x: Double
var y: Double
init(x : Double , y : Double)
{
self.x = x
self.y = y
self.text = "I'm 2d point"
}
}
class Square : Visual {
var text: String
var x: Int
init(x : Int)
{
self.x = x
self.text = "I'm square"
}
}
Я создал класс Storage, который будет хранить в массиве элементы и имеет две операции добавления и удаления
class Storage
{
var elements : [Visual]
init()
{
elements = [Visual]()
}
func add(item : Visual)
{
elements.append(item)
}
func delete(item : Visual)
{
}
func printItems()
{
print(elements)
}
}
Добавление работает нормально, но как мне реализовать удаление, поскольку я передаю объект со ссылкой на «Visual». Я хочу удалить первый увиденный объект слева направо?