• 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 

  • 相关阅读:
    gridview 后台增加列
    SQL Server 触发器
    PIVOT 和 UNPIVOT 命令的SQL Server版本
    HtmlHelper.Raw,<%%>,<%:%>,<%=%>的区别及使用
    分布式搜索的面试题3
    分布式搜索的面试题2
    分布式搜索的面试题1
    消息队列的面试题7
    消息队列的面试题6
    消息队列的面试题5
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/3156123.html
Copyright © 2020-2023  润新知