File's Owner和NSBundle

File's Owner:当NIB文件被载入一个已经运行了一段时间的程序中时,现存的对象需要与NIB文件中读取出来的对象建立一些连接。File's Owner提供了连接功能。在NIB文件中,File's Owner其实就是在NIB文件载入前就已经存在于对象中的占位符。载入NIB文件的对象需要提供所有者对象,所有者就取代File's Owner的位置。

NSBundle:是用于程序中的资源目录。资源包括图片、声音、编译完成的代码和NIB文件。(用户也经常使用plug-in来代替bundle,即插件。)NSBundle类是Cocoa中处理bundle的一个专门的类。应用程序其实就是一个bundle。在Finder中。应用程序看起来与其他文件一样。但实际上是一个包含着编译完成的代码、NIB文件以及其他资源的目录,这个目录称为main bundle。

//获取程序的main bundle

     NSBundle *myBundle = [NSBundle mainBundle];

    //如果需要访问另一个目录里的资源,可以使用指定的路径来访问bundle

    NSBundle * goodBundle;

    goodBundle = [NSBundle bundleWithPath:@"~/Library/Application Support/MyApp/Good.bundle"];

    //如果程序中有了NSBundle对象,那就可以如下操作访问资源

    //扩展是可选的

    NSString * path = [goodBundle pathForImageResource:@"Mom"];

    NSImage *momPhoto = [[NSImage alloc]initWithContentsOfFile:path];

    //Bundle可以包含一个代码库。通过访问bundle里面的类,bundle可以连接到库里面,通过类名来精心查找

    Class newClass = [goodBundle classNamed:@"Rover"];

    id newInstance = [[newClass alloc]init];

    

    //如果不知道bundle里类的名字,可查找主类

    Class aClass = [goodBundle principalClass];

    id anIntstance = [[aClass alloc]init];

    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值