• Bundle使用&NSBundle


    之 前在初始化一个类的时候:TestViewController *viewcontroller=[[TestViewController alloc]initWithNibName:@"TestViewController" bundle:[NSBundle mainBundle]];不是很明白:[NSBundle mainBundle]的意思。后来查阅资料后知道了它的作用,如下:

             bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程序的main bundle。

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

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

    一旦我们有了NSBundle 对象,那么就可以访问其中的资源了

    NSBundle束,是一种特定的文件类型,其中的内容遵循特定的结构。

    NSBundle的一个主要作用是 获取Resources文件夹中的资源

     

            在编程中使用[NSData dataWithContentOfFile:@"foo"]的时候,总是无法读取正确的文件内容。而使用[NSData dataWithContentOfFile:[[NSBundle mainBundle] pathForResource:@”foo” ofType:@”"]的时候就可以。

    因为当使用相对路径的时候,其实他相对的当前目录并不是程序运行的目录,而是“/”。只有使用[NSBundle mainBundle]来生成的路径才是文件真正的路径。

    在此记录一下:在以后的开发中不直接使用任何相对路径,而是使用经过计算以后的绝对路径
     

    一.获取图片

      1.   NSString *path = [[NSBuddle mainBuddle] pathForResource:@"resourceName" oftype@"resourceType"];

           UIImage *image = [[UIImage imageWithContentsOfFile:path];

     

      2.   UIImage *image = [UIImage imageNamed:@"imageName"];

    二.获取plist文件

      NSArray *array =[[NSArrayalloc]initWithContentsOfFile:[[NSBundlemainBundle]pathForResource:@"name"ofType:@"plist"]];

      NSDictionary *dict=[arrayobjectAtIndex:index];//将plist文件中的内容转换成字典

  • 相关阅读:
    supervisor管理nginx+tomcat容器
    【转】Linux下java进程CPU占用率高分析方法
    【转】ElasticSearch7.3 学习之生产环境实时重建索引
    【转】Python APScheduler
    Shell编程之if简单判断两个数字大小
    某年某月某日某时,某人在工作中设置crontab定时任务规则保存时,提示“No space left on device”,此时用df h检查磁盘,发现还有剩余空间.请问是什么原因及如何排查?什么会导致这种事情发生?
    【转】说说{}与[]这两个符号有什么区别?
    torchtext
    torch.manual_seed()
    判断数据是否在gpu
  • 原文地址:https://www.cnblogs.com/ejllen/p/3747888.html
Copyright © 2020-2023  润新知