从另一个捆绑包加载资源

问题描述

| 如果我有一个包含一个类和该类使用的一些资源的捆绑软件。如果我从捆绑软件中加载类,应该如何加载该类中的资源(加载该类的资源在捆绑软件中)? 假设我想在从捆绑包加载的类实例化的对象内部加载图片。 如果我做
NSImage *image = [NSImage imageNamed:@\"myImage\"];
它会加载我从中加载类的包中的图像吗?还是在加载了类和资源的捆绑软件的捆绑软件中查找?     

解决方法

           此方法搜索命名图像   在几个地方,返回第一个   找到与给定图像匹配的图像   名称。搜索顺序为   如下:         搜索名称为   使用setName显式设置:   方法,目前位于   图像缓存。   搜索应用程序的   名称为文件的主捆绑包   匹配指定的字符串。 (对于   有关捆绑包的信息   搜索,请参阅““访问捆绑包”   捆绑编程中的“目录”   指南。)   搜索应用套件   与共享图像的框架   指定的名称。查找文件时   在应用程序包中,它是   更好(但不是必需)以包括   名称中的文件扩展名   参数。 (链接)        ,        在OS X 10.7+上,执行以下操作:
NSBundle *otherBundle = [NSBundle bundleWithIdentifier: @\"com.company.otherapp\"];
NSImage *imageFromOtherBundle = [otherBundle imageForResource: @\"imageName\"];
    ,        您可以使用
NSBundle
+bundleForClass:
类方法来获取对特定类的包的引用。 然后可以使用
NSBundle
‑pathForImageResource:
方法获取图像的路径,并使用该路径创建
NSImage
。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...