美文网首页
iOS SDK(二):Bundle 创建 & 使用

iOS SDK(二):Bundle 创建 & 使用

作者: 上发条的树 | 来源:发表于2021-08-18 15:03 被阅读0次

    一般情况下,使用 bundle 文件来存档 SDK 使用的资源文件,如:图片、多语言文件、storyboard编译文件等。

    bundle创建方式

    方式一:

    新建文件夹


    新建文件夹

    修改文件名,后缀为 .bundle:


    修改文件名及后缀

    这样,就创建了一个 bundle 文件,将资源放置进去就可以使用了。


    得到bundle文件

    方式二:

    创建 bundle 工程


    创建bundle工程1 创建bundle工程2

    取名为 NiceBundle,此处的名字,即后面编译得到的 bundle 的名字


    创建bundle工程3

    为方便管理,将工程跟 Framework 工程放置到一起


    创建bundle工程4

    将支持类型设置为 iOS


    设置为iOS1 设置为iOS2

    设置最低支持版本和支持设备类型


    最低支持版本和支持设备类型

    编译得到 bundle 文件


    编译

    导入图片,编译一下


    导入图片

    可以发现,在 bundle工程中,图片放置在 image 文件夹下,编译后出现在 NiceBundle.bundle 根目录下,说明就算嵌套文件夹,编译后的资源文件都会在 bundle 文件根目录下。这个很重要,涉及到后面我们读取 bundle 文件的路径问题。

    导入图片

    同 Framework 工程一样,为方便管理,可以将其添加到 xcworkspace 中。

    添加到 xcworkspace 添加到 xcworkspace

    bundle资源读取

    将 NiceBundle.bundle 导入 Demo 工程,编译,查看 bundle 文件处于应用的哪个位置


    编译后 bundle 的位置

    由此,可以根据 bundle 在使用时的路径,得到该如何读取的方式。

    NSBundle+NiceSDKBundle.h

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface NSBundle (NiceSDKBundle)
    
    + (UIImage*)getNiceBundleImageWithName:(NSString*)name;
    
    @end
    
    NS_ASSUME_NONNULL_END
    

    NSBundle+NiceSDKBundle.m

    #import "NSBundle+NiceSDKBundle.h"
    
    @implementation NSBundle (NiceSDKBundle)
    
    + (NSString*)sdkBundlePath{
        NSString *path = [[NSBundle mainBundle] pathForResource:@"NiceBundle"
                                                               ofType:@"bundle"];
        return path;
    }
    
    + (UIImage*)getNiceBundleImageWithName:(NSString*)name{
        NSString *path = [[self sdkBundlePath] stringByAppendingPathComponent:name];
        UIImage *image = [UIImage imageWithContentsOfFile:path];
        return image;
    }
    
    @end
    

    可以看到,通过上面的方式,读取图片成功


    图片获取成功

    同理,其它类型的文件,也可以通过上面的方式进行读取。

    看懂请随手点赞,朋友们!🌹🌹🌹

    相关文章

      网友评论

          本文标题:iOS SDK(二):Bundle 创建 & 使用

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