NSBundle 不同文件夹中的两张图片同名
Posted
技术标签:
【中文标题】NSBundle 不同文件夹中的两张图片同名【英文标题】:Same name of two images in different folders of NSBundle 【发布时间】:2014-04-26 11:31:02 【问题描述】:我在NSBundle
的不同文件夹中有两个同名的图像。它显然会发出警告:
警告:输出文件/Users/xxxxxXXXXXXXxxxxxxx.app/image.png的多个构建命令
我知道NSBundle
=> 在NSBundle
中,所有文件夹都是“组”,而不是实际目录,并且这些组中的文件仍然位于包的根目录。
在我的应用程序中,我需要在不同的“文件夹”中拥有相同名称的图像以简化我的任务。
所以我的问题是:
有什么方法可以将两张图片保存在NSBundle
的不同文件夹中而不发出任何警告?还有怎么获取呢?
如果没有,那么当我将应用程序上传到应用商店时,此警告是否有问题?我的意思是,我的应用会不会被 Apple 拒绝?
【问题讨论】:
先生,请检查:- ***.com/questions/3692352/… @NitinGohel - 谢谢先生,我已经知道了……但是有什么办法可以解决吗?请阅读我的问题。也感谢队友给予你的关注。 :) @NitinGohel - 先生把它作为答案,所以我会接受它:) 看看这个答案Answer link 【参考方案1】:这是执行此任务的非常好的链接,请检查此 Xcode Groups vs. Folder References 清楚地描述了它
群组
基础项目文件 (project.pbxproj) 的大小和复杂性会显着增加,尤其是在具有多个目标的情况下。每个新目标都必须复制所有引用。您还必须记住为每个文件设置正确的目标成员资格。此外,由于项目文件更大、更复杂,SCM 合并冲突的可能性也更大。
组可能与磁盘上的文件夹层次结构完全不同。您可以在 Finder 中拥有 Xcode 项目中甚至不存在的项目文件夹,反之亦然。由于不匹配,定位文件可能会令人困惑
如果您在 Xcode 之外移动或重命名文件,引用中断并且文件变为红色。文件管理真的很痛苦。
文件夹引用
文件夹引用的好处是:
Xcode 仅存储对文件夹的引用。它的所有文件和子文件夹都会自动添加到项目中。这使项目文件更小更简单,合并冲突的可能性更小。
如果您重命名、删除或移动文件系统中的文件,Xcode 会自动更新文件夹引用以反映更改。文件管理因此变得容易得多。 由于项目中的文件夹层次结构与磁盘上的层次结构相匹配,因此它们不会随着时间的推移而发散并造成混乱。
您不必担心名称冲突,因为目录结构保留在产品包中。两个文件可以同名,只要它们位于不同的目录中即可。
【讨论】:
【参考方案2】:您有文件夹:图像。通过将其重命名为:images.bundle,将其更改为 bundle。将其拖到您的项目中,然后:
你有:
images.bundle --- folder1 --- image1.png
--- folder2 --- image1.png
--- folder3 --- image1.png
你得到文件夹数组,得到你想要的文件夹后,你可以得到你想要的图像:
NSString *path = [[NSBundle mainBundle] bundlePath];
path = [path stringByAppendingString:@"/images.bundle"];
NSError *error;
NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error];
【讨论】:
以上是关于NSBundle 不同文件夹中的两张图片同名的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server中 两个不同的数据库中的两张表如何关联?
需要使用hibernate dao实现方法保存不同jsp页面的两张表有外键关系