В swift 2 използвам CNLabeledValue.localizedStringForLabel(phoneNumber.label)
и работи добре.
В swift 3 опитах тази линия CNLabeledValue.localizedString(forLabel: phoneNumber.label!)
но имам generic parameter "ValueType" could not be inferred
грешка
Как да получите localizedstring за CNLabeledValue в swift3?
Отговори:
26 за отговор № 1В Swift 3, CNLabeledValue
се обявява за:
public class CNLabeledValue<ValueType : NSCopying, NSSecureCoding> : NSObject, NSCopying, NSSecureCoding {
//...
}
Това е родов тип и ако го използвате в подходящ контекст, нямате нужда да го хвърляте value
, Суифт 3 прави и ValueType
.
Но в кода си, Swift няма никаква представа за това ValueType
, Това е нещо досадно, защото ValueType
е излишно, докато изпълнява метода тип. Но системата на типа Swift се нуждае от уточняване. Ако Swift не може да заключи вида на ValueType
, можете изрично да я дадете.
Опитайте тази:
let localizedLabel = CNLabeledValue<NSString>.localizedString(forLabel: phoneNumber.label!)