【问题标题】:UIViewController localization problem (duplicate symbol _OBJC_IVAR_$_)UIViewController 本地化问题(重复符号_OBJC_IVAR__)
【发布时间】:2011-05-05 05:51:12
【问题描述】:

我对 XCode4 中的本地化过程有太多问题:

在我使用文件检查器本地化 UIViewController 并添加法语和英语后,我总是收到一些错误,说实例或文件重复,例如

duplicate symbol _OBJC_IVAR_$_....

对这两个问题之一有任何想法吗?

【问题讨论】:

    标签: objective-c ios4 localization xcode4


    【解决方案1】:

    Xcode 本地化功能复制给定文件并将每个副本放在相应的语言目录 (.lproj) 中。这对于依赖于语言的资源(nib 文件、文本文件)是有意义的,但您不应该对类这样做。否则,您最终会在代码中定义两次相同的类,因此会出现重复的符号。

    你应该做的是在你的实现文件中使用NSLocalizedString…,提取带有genstrings的字符串,并将翻译放在相应的语言目录中。

    我建议您阅读 Apple 编写的 Internationalization Programming Topics 指南。 Matt Gallagher 最近写了一篇关于user interface strings in Cocoa 的帖子;您可能也想阅读它。

    【讨论】:

    • 我之前已经知道了。我只是不明白他们为什么不阻止文件检查器中的类功能。这就是为什么我认为这是可能的。那我就照你说的做。谢谢~
    • @ludo 你可以file a bug report with Apple 要求 Xcode 不启用实现文件的本地化。这确实是一种奇怪的行为。
    • 当我本地化 xib 文件时您知道此错误:'NSInternalInconsistencyException',原因:'无法在包中加载 NIB
    • @ludo 当你构建应用程序时,看起来 nib 文件没有正确放置在包中。检查语言 (.lproj) 目录中是否有每个本地化 nib 文件的副本。
    猜你喜欢
    • 2019-04-02
    • 2011-03-15
    • 1970-01-01
    • 2013-10-22
    • 2017-09-28
    • 2010-12-16
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多