从另一个包加载资源
如果我有一个包,其中包含一个类和该类使用的一些资源。如果我从包中加载类,我应该如何加载该类中的资源(位于我加载类的包中)?
假设我想在从包中加载的类实例化的对象中加载图像。 如果我这样做,
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 NSBundle 的 +bundleForClass: 类方法来获取对特定类的捆绑包的引用。
然后,您可以使用
NSBundle
的‑pathForImageResource:
方法获取图像的路径,并使用该路径创建NSImage
。You can use the
+bundleForClass:
class method ofNSBundle
to get a reference to the bundle for a particular class.You can then use the
‑pathForImageResource:
method ofNSBundle
to get the path to the image and create anNSImage
with that path.在 OS X 10.7+ 上执行以下操作:
On OS X 10.7+ do this do this: