我正在try 制作一个框架,它将Bundle 一个故事板.我已经判断过了,并且创建了.框架包括我的.故事板文件(作为一个.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/
)的路径在future 可能会发生变化,不应该依赖于它? - 框架的名称可能会更改,但如果不先获得框架的
NSBundle
,就无法获得产品名称? - 框架并不是真正的Bundle 包(?),因此,将它们作为一个Bundle 包装载可能会在future 产生不可预见的后果?
可能还有其他问题,解决上述问题的方法,或者上述问题可能根本不是问题,但我一直没能想到它们.
这个问题可能更适合Code Review人,但我觉得它也适合这里.如果需要把它移到那边,请随意做,或者告诉我go 做.