Swift4 显示Swift 4.1中键的本地化字符串

Swift4 显示Swift 4.1中键的本地化字符串,swift4,Swift4,我一直在开发一个使用NSLocalized字符串的应用程序,但当我运行该应用程序时,它会显示本地化字符串的键,而不是字符串本身。 例子: 创建一个类初始值设定项 class TestClass { let name: String init(myName: String) { name = myName } } 初始化我的测试 class TestString { var list = [TestClass]() init() {

我一直在开发一个使用NSLocalized字符串的应用程序,但当我运行该应用程序时,它会显示本地化字符串的键,而不是字符串本身。 例子: 创建一个类初始值设定项

class TestClass {
    let name: String

    init(myName: String) {
        name = myName
    }
}
初始化我的测试

class TestString {
    var list = [TestClass]()
    init() {
        list.append(TestClass(myName: NSLocalizedString("Don", comment: "Test 1")))
        list.append(TestClass(myName: NSLocalizedString("Amanda", comment: "Test 2")))
    }
}
和我的视图控制器:

class ViewController: UIViewController {
    @IBOutlet weak var label: UILabel!
    var allNames = TestString()
    var count = 0

    @IBAction func button(_ sender: UIButton) {
        label.text = allNames.list[count].name
        count += 1
    }
}
字符串文件是:

"Don" = "Donald Belliveau";
"Amanda" = "Amanda Ferguson";

当我运行应用程序时,我应该会看到我的标签显示Donald Belliveau,只要我点击按钮,但我看到的是Don。这在上周(Swift 4.0)才起作用,但现在似乎不起作用。非常感谢您的帮助。

您可以使用以下代码尝试调试字符串值:

NSLocalizedString("Don", tableName: "Localized", bundle: Bundle.main, comment: "")
确保:

  • 表名应与字符串文件名完全相同
  • bundle应该与您的项目bundle名称完全一致

您是否已确保您的Localizable.strings文件实际包含在项目中?@CharlesSrstka-yup。它就在那里,被选中了。