美文网首页
NSBundle介绍及使用

NSBundle介绍及使用

作者: 宁梓茞 | 来源:发表于2018-02-10 20:28 被阅读0次

    bundle 是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle,

    cocoa提供了类NSBundle.

    bundle 文件的创建,只需要在本地创建一个文件夹,给文件夹添加后缀@".bundle"

    那么在工程中获取这个 bundle 文件夹的路径我们使用

    [[NSBundle mainBundle] pathForResource:<#(nullable NSString *)#> ofType:<#(nullable NSString *)#>] 是获取不到路径的

    如果是在工程文件下我们使用

    //例 NSURL *fileURl = [[NSBundle mainBundle] URLForResource:@"books" withExtension:@"epub"];
    

    在bundlle文件夹下我们需要使用

    [NSBundle mainBundle]resourcePath]

    //[NSBundle mainBundle]是获得NSBundle的一个单例对象,次单例对象 已经设置了默认的resourcePath,也就是你的app打包后的路径,[NSBundle    mainBundle]resourcePath]就是获得这个完整的打包后的app路径,但你的books.txt文件并不在这个目录,而是在app内部,这时就需要拼接路径字符串[NSString stringWithFormat:@"%@%@%@",[[NSBundle mainBundle]resourcePath],@"/",path];
    
    //在 bundle 文件下需要使用这种方法,但是中文的 URL 必须 UTF8编码
    
    NSString *file = [NSString stringWithFormat:@"file://%@/books.epub",[[NSBundle mainBundle]resourcePath]];
    
    //NSString *encoding = [file stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    NSURL *fileURl = [NSURL URLWithString:file];
    

    控制台输出

    file:///Users/apple/Library/Developer/CoreSimulator/Devices/9787BF52-ACE1-4A9F-9A8D-7BF6D6E7AC82/data/Containers/Bundle/Application/07B97638-C045-4DAC-9F82-B2219A28AE9E/EPUBBooks.app/books.epu

    相关文章

      网友评论

          本文标题:NSBundle介绍及使用

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