从另一个包中加载资源

the*_*1st 3 macos cocoa bundle nsbundle

如果我有一个包含该类和该类使用的一些资源的包.如果我从bundle加载类,我应该如何在该类中加载资源(在我加载类的bundle中)?

假设我想在从包中加载的类实例化的对象中加载图像.如果我做

NSImage *image = [NSImage imageNamed:@"myImage"];
Run Code Online (Sandbox Code Playgroud)

它会从我加载类的地方加载包内的图像吗?或者它会查看使用类和资源加载bundle的应用程序包?

str*_*nge 10

在OS X 10.7+上执行此操作:

NSBundle *otherBundle = [NSBundle bundleWithIdentifier: @"com.company.otherapp"];
NSImage *imageFromOtherBundle = [otherBundle imageForResource: @"imageName"];
Run Code Online (Sandbox Code Playgroud)


Ale*_*ers 4

\n

此方法在多个位置搜索命名图像,返回它找到的第一个与给定名称匹配的图像。搜索的顺序如下:

\n\n
    \n
  1. 搜索名称已使用 setName:\n 方法显式设置且当前驻留在图像缓存中的对象。
  2. \n
  3. 在应用程序的主包中搜索名称与指定字符串匹配的文件。(有关如何搜索捆绑包的信息,请参阅捆绑包编程中的 \xe2\x80\x9c\xe2\x80\x9c 访问捆绑包的\n 内容\xe2\x80\x9d\xe2\x80\x9c \n 指南。)
  4. \n
  5. 在应用程序工具包框架中搜索具有指定名称的共享映像。在应用程序包中查找文件时,最好(但不是必需)在 name 参数中包含文件扩展名。(关联)
  6. \n
\n
\n