Я пытаюсь создать структуру, которая будет связывать раскадровку. Я проверил, и созданный .framework включает мой файл .storyboard(как файл .storyboardc
) и получил фреймворк для загрузки раскадровки во время выполнения. Тем не менее, это будет основой, я бы хотел, чтобы код был максимально универсальным, и я чувствую, что мое текущее решение немного взломано. В настоящее время я загружаю раскадровку, используя следующий код:
let mainBundlePath: String = NSBundle.mainBundle().resourcePath
let frameworkBundlePath = mainBundlePath.stringByAppendingPathComponent("Frameworks/AuthenticationManager.framework")
let frameworkBundle = NSBundle(path: frameworkBundlePath)
let storyboard = UIStoryboard(name: "Storyboard", bundle: frameworkBundle)
Несколько вещей, которые я заметил, могут быть исправлены:
- Путь фреймворка (
Frameworks/
) может, возможно, измениться в будущем и не должен опираться? - Название фреймворка может измениться, но без предварительного получения
NSBundle
в каркасе нет способа получить имя продукта? - Рамки на самом деле не пучки (?), поэтому загрузка их в виде пакета может иметь непредвиденные последствия в будущем?
Могут возникнуть другие проблемы, решения вышеперечисленных проблем или вышеупомянутые проблемы, возможно, не являются проблемами в конце концов, но я не мог думать о них.
Этот вопрос может быть более подходящим для Обзор кода, но я чувствовал, что он тоже будет хорошо здесь. Если это нужно переместить туда, не стесняйтесь это делать или скажите мне, чтобы это сделать.