zoukankan      html  css  js  c++  java
  • 读入Plist文件中的信息

    Plist文件,是一个类似于目录树的文件,包含层级装的数据信息,这里我们「简单]介绍下如何读取plist文件内容

    包含的内容如下所示:

    Root

      MapServer

        TiledLayerPath

          item 0      :string : http://www.baidu.com

    NSString *ConfigFileName = "Config";// the name of the plist file 

    NSString *ConfigFileType = "plist"; // the file extention

    // 

    NSString *configFilePath = [[NSBundle  mainBundlepathForResource:ConfigFileName ofType:ConfigFileType];

    NSDictionary *dictRoot=[[NSDictionary alloc] initWithContentsOfFile:configFilePath];

    NSDictionary *dictMapServer=[dictRoot objectForKey:@"MapServer"];

    NSArray * tiledLayerArray = [dictMapServer objectForKey:@"TiledLayerPath"];

    int count = [tiledLayerArray count];

    NSString *tt = [tiledLayerArray objectAtIndex:0];

    //

     

    //下文转载一个讲解NSBuddle文件文章

    http://blog.csdn.net/iphoneing/archive/2010/09/09/5872610.aspx

     


    -- 思考: NSBundle ---

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

    我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle

    bundle中的有些资源可以本地化.例如,对于foo.nib,我们可以有两个版本: 一个针对英语用户,一个针对法语用户.  在bundle中就会有两个子目录:English.lproj和French.lproj,我们把各自版本的foo.nib文件放到其中. 当程序需要加载foo.nib文件时,bundle会自动根据所设置的语言来加载. 我们会在16章再详细讨论本地化

    通过使用下面的方法得到程序的main bundle
    NSBundle *myBundle = [NSBundle mainBundle];

    一般我们通过这种方法来得到bundle.如果你需要其他目录的资源,可以指定路径来取得bundle
    NSBundle *goodBundle;
    goodBundle = [NSBundle bundleWithPath:@"~/.myApp/Good.bundle"];

    一旦我们有了NSBundle 对象,那么就可以访问其中的资源了
    // Extension is optional
    NSString *path = [goodBundle pathForImageResource:@"Mom"];
    NSImage *momPhoto = [[NSImage alloc] initWithContentsOfFile:path];

    bundle中可以包含一个库. 如果我们从库得到一个class, bundle会连接库,并查找该类:
    Class newClass = [goodBundle classNamed:@"Rover"];
    id newInstance = [[newClass alloc] init];

    如果不知到class名,也可以通过查找主要类来取得
    Class aClass = [goodBundle principalClass];
    id anInstance = [[aClass alloc] init];

    可以看到, NSBundle有很多的用途.在这章中, NSBundle负责(在后台)加载nib文件. 我们也可以不通过NSWindowController来加载nib文件, 直接使用NSBundle:
    BOOL successful = [NSBundle loadNibNamed:@"About" owner:someObject];
    注意噢, 我们指定了一个对象someObject作为nib的File's Owner

     

  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/xingchen/p/2091356.html
Copyright © 2011-2022 走看看