2013-04-16 56 views
4

我在项目中为意大利语添加了新的本地化,之后我本地化了一个xib文件以开始翻译项目。问题是,现在当我在模拟器中运行我的项目时,没有发现任何xib。Xib在本地化后找不到

(GAIUncaughtExceptionHandler.m:41):未捕获的异常:在包无法加载NIB:“一个NSBundle ...

我实例的此文件所有者厦门国际银行使用initWithNibName。

我已经尝试过xib和基本本地化的纯粹本地化,但都没有工作。

我初始化所有者这样的:

[[SPConfigViewController的alloc] initWithNibName:@ “SPConfigViewController” 束:无];

编辑:

我创造了厦门国际银行的本地化版本后,我决定只关闭了XCode,然后再次打开它,和它的工作...

+0

当你调用'initWithNibName'显示的代码。 –

回答

24

我有同样的经历,什么头脑之旅...

过程:

(假设已在该项目的信息选择“使用基地国际化”项目)上

  1. 点击在文件浏览,它加载界面生成器
  2. 使用文件检查器一个的.xib资源,单击该按钮Localize
  3. 模态的礼物要求的语言,你想用(“基地”是不可用的我,所以我选择了“英语”)在文件检查器的局部部分
  4. 现在勾选旁边英语并没有靠近基地,所以我检查基地
  5. 然后我得到了我想要如何英语进行本地化挑选器:Interface Builder中可可触摸XIB本地化字符串

好吧,我是乐观的是,这将工作,所以RU ñ...
...和崩溃

***终止应用程序由于未捕获的异常 'NSInternalInconsistencyException',理由是: '不能在包中加载NIB:' 一个NSBundle <在/ var /移动/应用/ _____/_____。应用程序>(装载) '名为'__MY NIB STRING HERE___'

清洁,建设,运行 - >崩溃
选项键+清洁,建设,运行 - >崩溃
选项键+清除,删除应用程序,生成,运行 - >崩溃
选项键+清洁,重置模拟器,诅咒,建设,运行 - >崩溃

退出Xcode中,重新开张的Xcode,建设,运行 - >作品! WTF。

我已经打开了一个Bug Report against the issues,如果遇到此问题需要复制它,以便开发人员工具团队知道其重复出现的问题,将不胜感激。

+1

重新引导的XCode就像一个魅力...哈哈 –

+0

同样的问题和Xcode 4.6.3。选项键+清理,重置模拟器,诅咒,退出Xcode,重新启动Xcode,编译,运行 - >为我工作:D – Daniel

+0

从模拟器中删除应用程序,退出Xcode并手动删除派生的数据文件夹通常会为我解决这个问题。 – wrightak

0

你可以这样做:

[[YourViewController alloc] initWithNibName:@"YouViewController.xib" bundle:nil] 

不要使用扩展视图控制器的笔尖名字,尝试为波纹管:

[[YourViewController alloc] initWithNibName:@"YouViewController" bundle:nil] 
+0

这是我如何对其进行初始化: [SPConfigViewController页头] initWithNibName:@ “SPConfigViewController” 捆绑:无]。 – MouseCaneta

1

这似乎是由于xib文件的本地化将其移动到项目根目录内的新目录(base.lproj),之后xcode不能再找到xib文件。

,我首先要对项目文件,选择我的目标,要构建阶段选项卡解决了这个。然后如果你展开'Copy Bundle Resources'文件夹,你应该注意到在NSException中被抱怨的文件是红色的。我删除了这个文件,并阅读了'base.lproj'子文件夹中找到的本地化版本,这似乎解决了这个问题。

据我所知,这将需要为每个本地化xib,这是一个不必要的faffing周围吨(谢谢xcode ...),但嘿,该应用程序不再崩溃。

+0

我已经尝试过这一遍又一遍,没有修复。重新启动Xcode也没有修复。使用git,我重置所有更改。但我真的很想使用基础国际化。你对此有更多了解吗? –

0

请确认您有翻译成所有语种的文件。我已经放弃了英语,并且会以这种方式失败。直到我检查了英文,然后重新添加了玉米棒,我才能在“拷贝包资源”中正确显示它。你可以告诉它是确定的,因为它不会是红色,它会说“......在/ MyProject的/(本地化).LPROJ”,其中MyProject的,当然,是你的项目的名称。

相关问题