我有一个相当大且复杂的项目,其中包含多个 Storyboard,全部本地化为 2 种语言。我有 4 个 Storyboard - 主 iPhone、主 iPad 和另外 2 个用于单独的功能。
这是我遇到的问题..
其中 2 个 Storyboard在项目中是重复的。当我设法运行时,不知何故在运行时,这些 Storyboard之一被选中。当我编辑 Storyboard时,我将不得不在这两个文件中进行编辑。
副本 1
副本 2
另一个问题是我的项目目录变得一团糟。我有 2 个资源本地化版本的副本。因此有 2 个 it.proj 文件夹,一个在项目的根文件夹中,一个在源文件夹中。
项目根目录下的it.proj文件夹
源代码文件夹 AgentAssist 中的 Storyboard
更多本地化资源
这些引起的问题是不寻常的。有时运行正常,有时我会遇到不同的错误。一个是
编译失败。无法写入路径:/User.....Underlying Err 描述:文件“CMAStoryboard_iPad.storyboardc”无法保存在文件夹“Base.lproj”中,因为已有同名文件失败原因:一个文件名称为“CMAStoryboard_iPad.storyboardc”已经存在 恢复建议:要保存文件,请提供不同的名称,或者移动或删除现有文件,然后 tr 底层描述:操作无法完成。失败原因:说明:无法删除“CMAStoryboard_iPad.storyboardc”,因为您没有访问权限失败原因:您没有恢复建议:要查看或更改权限,请在 Finder 中选择该项目,然后选择文件 > G 底层描述:操作无法完成。 Directo失败原因:Directo....
另一个替代错误是复制 .strings 文件错误。 错误:无法删除 ...../Xcode/DerivedData/AgentAssist-bgxpswehldjaxchamdipxdcfafbf/Build/Products/Debug-iphoneos/AgentAssist.app/it.lproj/CMAStoryboard.strings:“CMAStoryboard.strings”无法删除。
有时在清理、删除派生数据文件夹后,甚至什么都不做,它就运行了。
非常感谢您的帮助,因为我无法解决此问题,也无法继续处理该项目。
谢谢
最佳答案
对于每个 Storyboard文件名(或者实际上是 Xcode 中的任何资源),您应该只有一个具有该文件名的源文档。具有相同名称的资源都映射到相同的输出文件,并且您会看到这种未定义行为的结果以各种方式解决。
所以如果你有这个:
ProjectRoot/Base.lproj/MyStoryboard.storybaord ProjectRoot/Folder/Folder/Base.lproj/MyStoryboard.storybaord
然后这两个文档映射到同一个输出文件。
您需要删除 ProjectRoot/Base.lproj 中的一个或 ProjectRoot/Folder/Folder/Base.lproj 中的一个,但不要保留两个文件。
关于iphone - Xcode 项目目录中出现重复的 Storyboard 文件。勉强能够运行项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17163370/