/ / Как да се локализира стринг за CNLabeledValue в swift3 - ios, swift, swift3, cncontact

Как да получите localizedstring за CNLabeledValue в swift3 - ios, swift, swift3, cncontact

В 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!)