R.Swift - 无法调用非函数类型 StringResource 的值
R.Swift - Cannot call value of non-function type StringResource
任何有使用经验的人 R.Swift 谁能提供帮助?我正在尝试在我们使用大量 R.string.localizable
的项目中整合代码,这样它们的出现就不会散布在整个代码中,这样字符串(和图像)就不需要一次又一次地重新实例化。为此,我想添加静态惰性结构,如下所示:
private struct Text
{
static let text1 = R.string.localizable.text1()
static let text2 = R.string.localizable.text2()
static let text3 = R.string.localizable.text3()
static let text4 = R.string.localizable.text4
}
这适用于简单的字符串,但是当任何这些字符串资源需要参数时就会出现问题,例如 text4
的情况,因此被声明为 String Resource
而不是 String
:
R.generated.swift:
static let text4 = Rswift.StringResource(key: "some.username", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "ja"], comment: nil)
当需要 text4
并且我尝试通过我的文本结构使用它时,我收到错误:
_userNameLabel?.text = Text.text4(userName, String.Empty)
错误:Cannot call value of non-function type StringResource
有没有办法让它工作?
您可以使用
static func text4(_ value: Int) -> String {
R.string.localizable.text4(value)
}
并调用 Text.text4(10)
任何有使用经验的人 R.Swift 谁能提供帮助?我正在尝试在我们使用大量 R.string.localizable
的项目中整合代码,这样它们的出现就不会散布在整个代码中,这样字符串(和图像)就不需要一次又一次地重新实例化。为此,我想添加静态惰性结构,如下所示:
private struct Text
{
static let text1 = R.string.localizable.text1()
static let text2 = R.string.localizable.text2()
static let text3 = R.string.localizable.text3()
static let text4 = R.string.localizable.text4
}
这适用于简单的字符串,但是当任何这些字符串资源需要参数时就会出现问题,例如 text4
的情况,因此被声明为 String Resource
而不是 String
:
R.generated.swift:
static let text4 = Rswift.StringResource(key: "some.username", tableName: "Localizable", bundle: R.hostingBundle, locales: ["en", "ja"], comment: nil)
当需要 text4
并且我尝试通过我的文本结构使用它时,我收到错误:
_userNameLabel?.text = Text.text4(userName, String.Empty)
错误:Cannot call value of non-function type StringResource
有没有办法让它工作?
您可以使用
static func text4(_ value: Int) -> String {
R.string.localizable.text4(value)
}
并调用 Text.text4(10)