Доброго дня! Необходимо сделать следующее два шага, но предполагаю, что делаю это не верно. Так как не могу справиться с задачей №2. Прошу помощи… Предварительно по заданию создано 2 класса и в них по несколько под-классов.
Создание класса выглядит так:
class Animal {
}
class Dog: Animal {
var color: String
var age: Int
var weight: Int
init (color: String, age: Int, weight: Int) {
self .color = color
self .age = age
self .weight = weight
}
}
Помещение в массив этого класса выглядит так:
var arrayOfAny = [ Animal ] ()
Наполнение массива так
arrayOfAny.append(Dog(color: “black”, age: 2, weight: 3))
Наполнение другого массива данными другого класса выглядит так
arrayOfDev.append(Mouse(company: “Apple”))
arrayOfDev.append(Keyboard(company: “Apple”))
arrayOfDev.append(Device(company: “Apple”))
-
Задача: Создайте массив типа AnyObject и поместите в него члены двух массов путем перечисления (через циклы for)
Пример моей реализации:
var arrayFinal: [AnyObject] = []
for _ in arrayOfDev {
arrayFinal.append(contentsOf: arrayOfDev)
}
for _ in arrayOfAny {
arrayFinal.append(contentsOf: arrayOfAny)
}
Здесь вроде все получилось без ошибок, далее легенда
arrayFinal - итоговый массив со всеми данными,
arrayOfDev - массив первого класса с его подклассами
arrayOfAny - массив второго класса с его другими подклассами
- Задача: И затем из этого массива c помощью проверки типов вытащите объекты только класса Dog.
А это совсем не получается.
Пробовал следующее:
for item in arrayFinal {
if item is Dog {
print(item)
}
Выводит это (не похоже на содержание класса, но количество выводов соответствует количеству параметров в объекте класса):
__lldb_expr_4.Dog
__lldb_expr_4.Dog
__lldb_expr_4.Dog