У меня есть родительский класс, который унаследован от стандартного SKScene и называется - SKSParent. Он создан для выполнения родительской функции создания пользовательских сцен по идентификатору. Проблема в том, что при запуске проекта на iOS 11 + все работает правильно, но при запуске на ios 10.3.1. Мои объекты, которые я создаю по идентификатору сцены, не принимают желаемый дочерний класс на основе идентификатора. Все объекты создаются как объекты класса SKSParent, независимо от их идентификатора и созданных файлов .swift.
Возможно, кто-то сталкивался с таким поведением ?
import SpriteKit
class Parent: SKScene {
}
class StoryScene: Parent {
}
class Story1: StoryScene {
}
class Story2: StoryScene {
}
class Story3: StoryScene {
}
Некоторое условие для выбранной истории (например, сохранение прогресса текущего пользователя в пользовательском по умолчанию, например, в качестве имени истории) Создано несколько историй с использованием for init by Name из суперкласса, как показано ниже:
let storyName = UserDefaults.standard.string(forKey: "current_user_story") ?? "Story1"
let currentStory = Parent(fileNamed: storyName)
/* some configurations with using object like Parent object */
/* presenting to user. */
В этом случае на iOS 10 текущая история является объектом класса 'Parant' ... В этом случае на iOS 11 и выше это объект определенного c тип Story (*)
Дело в том, что на ios 10 в таких случаях объекты загружают компоненты из файла .sks, но не выполняют методы жизненного цикла определенного класса из .swift файл.