zoukankan      html  css  js  c++  java
  • bundle,

    转:http://www.cocoachina.com/bbs/read.php?tid=9640

    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会自动根据所设置的语言来加载.  
    通过使用下面的方法得到程序的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

    ps:还可以加载 库呢,加载文件,好像 比沙盒强大多了,

  • 相关阅读:
    Proj THUDBFuzz Paper Reading: The Art, Science, and Engineering of Fuzzing: A Survey
    Proj THUDBFuzz Paper Reading: A systematic review of fuzzing based on machine learning techniques
    9.3 付费代理的使用
    11.1 Charles 的使用
    第十一章 APP 的爬取
    10.2 Cookies 池的搭建
    10.1 模拟登录并爬取 GitHub
    11.5 Appium 爬取微信朋友圈
    11.4 Appium 的基本使用
    11.3 mitmdump 爬取 “得到” App 电子书信息
  • 原文地址:https://www.cnblogs.com/guligei/p/3515998.html
Copyright © 2011-2022 走看看