如何在 swift3 中获取 CNLabeledValue 的本地化字符串
How to get localizedstring for CNLabeledValue in swift3
在 swift 2 中,我正在使用 CNLabeledValue.localizedStringForLabel(phoneNumber.label)
并且工作正常。
在 swift 3 中,我尝试了这一行 CNLabeledValue.localizedString(forLabel: phoneNumber.label!)
但得到 generic parameter 'ValueType' could not be inferred
错误
如何在 swift3 中获取 CNLabeledValue 的本地化字符串?
在Swift3中,CNLabeledValue
声明为:
public class CNLabeledValue<ValueType : NSCopying, NSSecureCoding> : NSObject, NSCopying, NSSecureCoding {
//...
}
它是一个通用类型,如果您在适当的上下文中使用它,则无需转换它的 value
。 Swift 3 井推断 ValueType
.
但是在你的代码中,Swift 没有线索来推断 ValueType
。这有点烦人,因为在执行类型方法时不需要 ValueType
。但是 Swift 的类型系统需要指定它。如果 Swift 无法推断出 ValueType
的类型,您可以显式给出它。
试试这个:
let localizedLabel = CNLabeledValue<NSString>.localizedString(forLabel: phoneNumber.label!)
在 swift 2 中,我正在使用 CNLabeledValue.localizedStringForLabel(phoneNumber.label)
并且工作正常。
在 swift 3 中,我尝试了这一行 CNLabeledValue.localizedString(forLabel: phoneNumber.label!)
但得到 generic parameter 'ValueType' could not be inferred
错误
如何在 swift3 中获取 CNLabeledValue 的本地化字符串?
在Swift3中,CNLabeledValue
声明为:
public class CNLabeledValue<ValueType : NSCopying, NSSecureCoding> : NSObject, NSCopying, NSSecureCoding {
//...
}
它是一个通用类型,如果您在适当的上下文中使用它,则无需转换它的 value
。 Swift 3 井推断 ValueType
.
但是在你的代码中,Swift 没有线索来推断 ValueType
。这有点烦人,因为在执行类型方法时不需要 ValueType
。但是 Swift 的类型系统需要指定它。如果 Swift 无法推断出 ValueType
的类型,您可以显式给出它。
试试这个:
let localizedLabel = CNLabeledValue<NSString>.localizedString(forLabel: phoneNumber.label!)