Ald*_*rdi 7 ios swift cncontact swift3
在swift 2中我使用CNLabeledValue.localizedStringForLabel(phoneNumber.label)并且工作正常.
在swift 3中,我尝试了这一行,CNLabeledValue.localizedString(forLabel: phoneNumber.label!)但是遇到了generic parameter 'ValueType' could not be inferred错误
如何在swift3中获取CNLabeledValue的localizedstring?
OOP*_*Per 29
在Swift 3中,CNLabeledValue声明为:
public class CNLabeledValue<ValueType : NSCopying, NSSecureCoding> : NSObject, NSCopying, NSSecureCoding {
//...
}
Run Code Online (Sandbox Code Playgroud)
它是一个泛型类型,如果你在适当的上下文中使用它,你就没有必要强制它value.Swift 3很好地推断了ValueType.
但是在你的代码中,Swift无法推断出ValueType.这有点烦人,因为ValueType在执行类型方法时是不必要的.但是Swift的类型系统需要指定它.如果Swift无法推断出它的类型ValueType,你可以明确地给出它.
试试这个:
let localizedLabel = CNLabeledValue<NSString>.localizedString(forLabel: phoneNumber.label!)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3134 次 |
| 最近记录: |