• iOS学习笔记10


    经常会有需要从应用中搜索并读取一个文件或图片。这时候就会用到如下的语句:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"AddressFields" ofType:@"plist"];

    通过如上的语句获取到路径之后,就可以再通过各种方法解析或显示文件了

    NSMutableDictionary *registerConfig = [NSMutableDictionarydictionaryWithContentsOfFile:path];

     

    上面的方法中有一个对象是以前开发桌面程序没有看到过的:Bundle。那这次就来说下Bundle吧。

     

    1. 定义

    Bundle是一个文件夹,一个包含了可执行代码,图片,音乐的文件夹。根据wiki(http://en.wikipedia.org/wiki/Bundle_(NEXTSTEP)) ,应该是一个Apple专属的名词?作为对比,Windows经常将文件在编译时包含在一个可执行文件(exe)或DLL里了。

    Bundle作为一个文件夹的有一个好处应该是文件结构很清晰?有人提问过怎么做一个iOS的asset bundle,答案超级简单:

    创建一个文件夹,把文件添加进去,重命名为 bundle名字.bundle

    颇有将一个大象装到冰箱里去的感觉。

     

    2. 组成

    Bundle下有一个运行时的配置文件:Info.plist。资源文件放在Resources文件夹下。

    如果要实现多语言的话,应该只需要往Resources下更新一个对应语言的资源文件就可以了?

     

    3. mainBundle

    每个应用必然有一个mainBundle。这个Bundle中包含了应用的代码。

    在程序加载的时候,首先会载入mainBundle里的马上需要执行的代码和资源,然后才会延迟或动态加载mainBundle或其他bundle中的其他代码和资源。

     

    4. Info.plist

    Info.plist是存放运行时读取的键值对的XML文件。

    如果要读取Info.plist里的值,可以通过:

    [[NSBundle mainBundle] objectForInfoDictionaryKey:key_name];

    来直接获取,例如:

    NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

    所有iOS下的Info.plist里的值,可以参考:http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html%23//apple_ref/doc/uid/TP40009252-SW1 

  • 相关阅读:
    获取全部 txt 文本中出现次数最多的前N个词汇
    提取txt文本有效内容
    部分画图
    Series结构(常用)
    C 语言实例
    HTML之marquee(文字滚动)详解
    一款好看的404页面代码 | 滚动的404
    VS2010到VS2019各个版本的密钥
    什么是工程/项目?
    什么是IDE(集成开发环境)?
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/3156123.html
Copyright © 2020-2023  润新知