从另一个包加载资源

发布于 2024-11-17 06:08:13 字数 237 浏览 1 评论 0原文

如果我有一个包,其中包含一个类和该类使用的一些资源。如果我从包中加载类,我应该如何加载该类中的资源(位于我加载类的包中)?

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

NSImage *image = [NSImage imageNamed:@"myImage"];

它会从我加载类的位置加载包内的图像吗?或者它会在加载了类和资源的包的应用程序包中查找?

If I have a bundle that contains a class and some resources used by that class. If I load the class from the bundle how should I load the resources(that are in the bundle where I loaded the class from) in that class?

Let's say I want to load an image inside my object instantiated from the class loaded from the bundle.
If I do

NSImage *image = [NSImage imageNamed:@"myImage"];

Will it load the image that's inside the bundle from where I loaded the class from? or will it look in the bundle of the application that loaded the bundle with the class and resources?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暗恋未遂 2024-11-24 06:08:14

您可以使用 NSBundle 的 +bundleForClass: 类方法来获取对特定类的捆绑包的引用。

然后,您可以使用 NSBundle‑pathForImageResource: 方法获取图像的路径,并使用该路径创建 NSImage

You can use the +bundleForClass: class method of NSBundle to get a reference to the bundle for a particular class.

You can then use the ‑pathForImageResource: method of NSBundle to get the path to the image and create an NSImage with that path.

贱人配狗天长地久 2024-11-24 06:08:13

在 OS X 10.7+ 上执行以下操作:

NSBundle *otherBundle = [NSBundle bundleWithIdentifier: @"com.company.otherapp"];
NSImage *imageFromOtherBundle = [otherBundle imageForResource: @"imageName"];

On OS X 10.7+ do this do this:

NSBundle *otherBundle = [NSBundle bundleWithIdentifier: @"com.company.otherapp"];
NSImage *imageFromOtherBundle = [otherBundle imageForResource: @"imageName"];
七度光 2024-11-24 06:08:13

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

  1. 搜索名称为
    使用 setName 显式设置:
    方法,目前驻留在
    图片缓存。
  2. 搜索应用程序的
    其名称的文件的主包
    匹配指定的字符串。 (为了
    有关捆绑包的信息
    搜索,请参阅“”访问捆绑包
    捆绑编程中的内容”“
    指南。)
  3. 搜索申请工具包
    与共享图像的框架
    指定名称。查找文件时
    在应用程序包中,它是
    更好(但不是必需)包括
    名称中的文件扩展名
    范围。 (链接)

This method searches for named images
in several places, returning the first
image it finds matching the given
name. The order of the search is as
follows:

  1. Search for an object whose name was
    set explicitly using the setName:
    method and currently resides in the
    image cache.
  2. Search the application's
    main bundle for a file whose name
    matches the specified string. (For
    information on how the bundle is
    searched, see ““Accessing a Bundle's
    Contents”“ in Bundle Programming
    Guide.)
  3. Search the Application Kit
    framework for a shared image with the
    specified name. When looking for files
    in the application bundle, it is
    better (but not required) to include
    the filename extension in the name
    parameter. (Link)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文