所以这里的交易: 我在自定义框架的资源文件夹中有一个图像,我用它作为框架中类的默认值。但是,当我在与我的框架链接的项目中创建这些类时,他们失败说他们找不到图像。我猜测NSBundle的+ mainBundle不会搜索我的类的正确路径,以便在不同项目中链接时查找此图像。它是否正确?如果是这样,我应该在哪里寻找我的形象?我希望这是有道理的(这是非常晚),感谢您的帮助!图片包未找到使用NSBundle
3
A
回答
2
对于应用程序,+ mainBundle将是应用程序包(例如,Foo.app)。框架是他们自己的捆绑包,您可以使用+ bundleForClass:或+ bundleWithIdentifier :.
0
这很可能是您的图像没有放入主包中。您可能必须直接使用NSBundle来构建图像的路径。内置的.app文件层次结构在图像方面的效果如何?
+0
我不相信图像不在框架包中。我的问题是,加载图像的类正在使用[NSBundle mainBundle]来抓取图像。由于此调用是由相关项目进行的,因此“主包”是应用程序包而不是框架包,因此不会搜索正确的包以查找映像。我需要找出最好的方法是始终搜索框架包以查找默认图像。 – Grimless 2010-07-27 14:49:37
相关问题
- 1. 找到图片src:包含?
- 2. NSBundle pathForResource:ofType:找不到应用程序包中的所有文件
- 3. 图片未找到/加载正确 - 404
- 4. Django - 静态图片未找到
- 5. 找到未使用的图片,css规则,js脚本块
- 6. 找出用于UIViewController的NSBundle
- 7. ENOTFOUND包未找到
- 8. 未找到包; javac
- 9. javax.servlet包未找到
- 10. Soomla:Cocos2dx:Store:Android“未找到包”
- 11. 使用[NSBundle mainBundle] pathForResource:ofType:inDirectory:
- 12. RoR图片标签找不到图片
- 13. 如何使用C查找应用程序包(NSBundle)中文件的路径?
- 14. 未找到Virtualenv安装包
- 15. 未找到Java包装类
- 16. catkin_make后未找到Ros包
- 17. 未找到javax.ejb包(Eclipse)
- 18. Stata:未找到Ado包
- 19. 未找到包gnuradio-core
- 20. 未找到图像
- 21. 未找到API包'memcache'或调用'FlushAll()'
- 22. 查找未使用的图像或覆盖+ imageNamed:记录未找到图像
- 23. 未找到包或者包package-info.java
- 24. 信息包中未找到包
- 25. 未收到图片上传
- 26. 添加图片到罐子,到specipic找到使用ANT
- 27. 找到图片的OpenCV中
- 28. Psycopg2没有找到图片
- 29. 如何查找图片包含特定图片/ Logo
- 30. SDK没有找到图片用的CocoaPods
因此,使用+ bundleForClass的:,我可以调用类似的东西来 'NSImage中* defaultImage = [[一个NSBundle bundleForClass:[MyClass的类] pathForResource:@ “默认” ofType:@ “PNG” inDirectory:无];' 抓住我想要的图像?有没有一种方法可以做得更干净一点(我不喜欢使用'[MyClass class]'调用)? – Grimless 2010-07-27 14:54:21
替代方案是+ bundleWithIdentifier,您可以使用您在该包的Info.plist中定义的标识符来调用该方法。 '[MyClass class]'有什么问题?这是一个相当常见的使用模式,不应该让你感到不舒服。 – 2010-07-27 16:59:20
这并不是说它让我感到不舒服,我只是想知道是否有替代或更常用的模式。你会推荐哪个?我的直觉告诉我使用+ bundleWithIdentifier:因为它可以很容易地被定义,并且不依赖框架的实际内容(类或者其他)。感谢您的输入! – Grimless 2010-07-28 00:01:55