美文网首页
[[NSBundle mainBundle] pathForRe

[[NSBundle mainBundle] pathForRe

作者: 江湖闹士 | 来源:发表于2021-05-17 14:28 被阅读0次
    添加图片

    如果上面都没问题,而且你的项目就单独一个独立项目,没有组件化,那么应该是没有问题的。

    我遇到的问题是,因为组件化项目,在单独一个组件里面调用这个方法,总是返回nil,一方面可能也有上面的原因,改好之后还是有问题,最后的解决方法是

    不能用这个

    [[NSBundle mainBundle] pathForResource:<#(nullable NSString *)#> ofType:<#(nullable NSString *)#>];

    应该用这个,里面的类名是组件化对应的一些类

    [NSBundle bundleWithURL:[[[NSBundle bundleForClass:JYTorrentModuleObject.class] resourceURL] URLByAppendingPathComponent:@"JYTorrentModule.bundle"]];

    这个的JYTorrentModuleObject其实也是一个继承与NSObject的空类,JYTorrentModule是组件名字

    可以把这个东西领出来,进行性能优化

    .h中
    FOUNDATION_EXTERN NSBundle* _Nullable JYPlatformBundle(void);
    .m中
    NSBundle* JYPlatformBundle() {
        // 不需要每次调用都生成NSBundle,性能优化,可为启动提升2~3ms
        static dispatch_once_t onceToken;
        static NSBundle* resourceBundle = nil;
        dispatch_once(&onceToken, ^{
            resourceBundle = [NSBundle bundleWithURL:[[[NSBundle bundleForClass:JYTorrentModuleObject.class] resourceURL] URLByAppendingPathComponent:@"JYTorrentModule.bundle"]];
        });
        return resourceBundle;
    }
    

    相关文章

      网友评论

          本文标题:[[NSBundle mainBundle] pathForRe

          本文链接:https://www.haomeiwen.com/subject/rxjjjltx.html