【问题标题】:initWithNibName: bundle: always load English nibinitWithNibName: bundle: 总是加载英文笔尖
【发布时间】:2011-04-05 20:42:06
【问题描述】:

我已将我的 ContactView.xib 文件本地化为英语和法语,它通常必须自动加载。我用UIViewController的initWithNibName: bundle:方法初始化对象,结果总是一样:加载的文件是英文的!

我已经清理了项目,重新安装了应用程序等等,但没有任何效果,我的 xib 文件的法语版本被忽略了!

我知道有一个相关的帖子 (here),但问题并不完全相同,尽管我努力了,但它仍然存在。

这是我编写的代码示例:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil contact:(Contact *)aContact
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self != nil)
    {
        self.contact = aContact;
    }
    return self;
}

要在适当的语言环境中加载文件,还有其他事情要做吗? 我检查了设备(或模拟器)上的首选项以及加载到模块中的首选项,并且每次都将语言环境设置为法语。

提前谢谢你,

杰弗里。

【问题讨论】:

    标签: iphone objective-c cocoa-touch localization uiviewcontroller


    【解决方案1】:

    我今天遇到了一个非常相似的问题,浪费了大约 2 个小时。

    最后我删除了本地化的xib 通过本地化中的“-” 菜单。然后我不得不删除 .XIB 项目中的文件

    (请确保在删除任何内容之前在某处保存它的副本 - 您无法将其取回!!)。

    然后我将 .XIB 文件拖回 该项目。终于成功了

    在我能正确本地化之后,它就成功了。但是让我告诉你,在应用程序没有 200% 准备好之前,我永远不会开始本地化。 xCode4 中似乎有一个严重的错误。 (它甚至在我身上崩溃了好几次——我猜是因为它保留了一个指向在 HDD 上任何地方都找不到的 xib 的链接。

    此错误仅在所述过程后消失。即使从项目中删除 .XIB 文件并从 HDD 中删除它仍然没有帮助。 XCode 愉快地从这个 .XIB 开始(无论它是从哪里得到的)。

    祝你好运! (我今天在这上面浪费了太多时间!)

    【讨论】:

    • 非常感谢!昨天我也和同事浪费了这么多时间,我们谁也看不出它是从哪里来的。又一个 Xcode 4 错误,感谢 Apple!我按照您的程序进行操作,效果很好;)
    【解决方案2】:

    作为参考,我想我知道是什么导致了这个问题:

    您是否将法语版本本地化为“字符串”文件?如果是这样,试试这个:

    • 选择 .xib(根条目,不是本地化版本)

    • 在检查器中,检查:Interface Builder Document → Document Editing → Builds for

    就我而言,它说“OS X 10.7 及更高版本”,我遇到了同样的问题。我将它设置为“OS X 10.10”,在另一个干净的构建之后,一切正常。

    我怀疑你的法语本地化没有加载,因为 .xib 文件格式还与 .strings 本地化不兼容(我不太记得是什么时候引入的)。

    【讨论】:

      猜你喜欢
      • 2012-03-16
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多