2016-12-27 1 views
0

1..2와 같은 범위가 포함 된 문자열을 현지화하려고합니다. 나는 String.localizedStringWithFormat을 사용하고 있습니다 :String.localizedStringWithFormat가 잘못된 결과를 반환합니다.

func testLocalizableString() -> String { 
    let lowerBound = 1 
    let upperBound = 2 
    return String.localizedStringWithFormat(
     NSLocalizedString("Unit.Meters.Range", value:"%d-%dm", comment: ""), 
     [lowerBound, upperBound] 
    ) 
} 

는 그러나, 나는 이상한 결과를 얻을 : "103,413,600-0m을".

인수를 하나만 사용하면 ("% d- % dm"이 아니라 "% d- % dm") 하나의 숫자 만 전달하면 모든 것이 정상입니다.

내 코드가 잘못되었을 수 있으며 CVarArg 인수로 지역화 할 수있는 문자열의 형식을 올바르게 지정하는 방법은 무엇입니까?

func testLocalizableString() -> String { 
    let lowerBound = 1 
    let upperBound = 2 
    return String.localizedStringWithFormat(
     NSLocalizedString("Unit.Meters.Range", value:"%ld-%ldm", comment: ""), 
     lowerBound, upperBound 
    ) 
} 

참고

답변

0

String.localizedStringWithFormat(_ format: String, _ arguments: CVarArg...) 

두 번째 매개 변수는, 특정 유형이 아닌 배열을 0 이상의 인수를 전달해야한다는 의미 가변 파라미터Int의 형식 지정자가 %ld이 아니라 %d이 아님.

관련 문제