Ios 如何检查特定NSBundle中是否存在故事板
我正在制作一个应用程序,利用我正在创建的框架 框架包含故事板,但在某些情况下,使用框架的项目需要通过提供新的故事板来覆盖故事板 因此,我的目标是检查Ios 如何检查特定NSBundle中是否存在故事板,ios,objective-c,xcode,storyboard,nsbundle,Ios,Objective C,Xcode,Storyboard,Nsbundle,我正在制作一个应用程序,利用我正在创建的框架 框架包含故事板,但在某些情况下,使用框架的项目需要通过提供新的故事板来覆盖故事板 因此,我的目标是检查[NSBundle mainBundle]中是否存在具有给定名称的情节提要,如果不存在,那么我将从我的框架中获取基本版本 我试着从主捆绑包中获取故事板,并检查结果是否为零,但如果找不到,它会抛出一个异常。因此,我尝试捕获异常,然后从框架加载情节提要。这个确实可以工作,但感觉脏兮兮的,很可能会影响我的应用程序的性能 我还尝试了捆绑包中的pathForR
[NSBundle mainBundle]
中是否存在具有给定名称的情节提要,如果不存在,那么我将从我的框架中获取基本版本
我试着从主捆绑包中获取故事板,并检查结果是否为零,但如果找不到,它会抛出一个异常。因此,我尝试捕获异常,然后从框架加载情节提要。这个确实可以工作,但感觉脏兮兮的,很可能会影响我的应用程序的性能
我还尝试了捆绑包中的pathForResource
:
if([[NSBundle mainBundle] pathForResource:name ofType:@"storyboard"] != nil) {
}
但这永远找不到故事板
有人知道我可以用什么方法来检查某个特定捆绑包中是否存在故事板吗?所以,我已经尝试过了。根据对我的问题的评论,故事板的编译扩展名是“storyboard C”。因此,我可以检查捆绑包中是否存在故事板,如下所示:
if([[NSBundle mainBundle] pathForResource:name ofType:@"storyboardc"] != nil) {
//The storyboard exists
} else {
//The storyboard isn't in the bundle, get it from the framework bundle.
}
由于您无法在运行时写入应用程序包,因此您应该在编译时准确地知道包中的内容……代码在框架中。因此,我无法从框架中分辨出它嵌入的主捆绑包中的内容。不知道它是否有用,但编译后的情节提要有一个文件扩展名“storyboard c”。
storyboard c
中的“c”很重要,因为我们正在寻找编译器情节提要文件@MatthieuRiegler,@Swinny89您知道使用Storyboard C
是否是AppStore被拒绝的原因吗?它不是使用私有API,所以,不。pathForResource:类型名称:@“Storyboard C
在设备上无法工作,我必须重新提交一个应用程序。请勿使用。请提供更多信息?我已经在设备上运行了很长时间,从来没有遇到过任何问题。