2017-12-06 25 views
0

NSString(format: , arg...)을 사용하여이 레이블에서 하나 이상의 값을 증가시켜 UILabel을 업데이트하려고합니다.[Float]을 변수 인수로 변환하십시오.

이렇게하려면 arg32를받은 사람은 Float... (내가 원하는 것입니다.)이고 그 값을 저장하는 유일한 해결책은 배열을 사용하는 것입니다. (내가 원하는 것은 아닙니다) . 그런 다음 배열의 각 값을 수정하여 표시합니다.

내 UILabel 텍스트를 수정하려면 label.text = NSString(format: "%f and %f", myArrayOfFloat)을 사용하고 있는데 작동하지 않습니다. NSString은 배열이 아닌 단일 값으로 배열을 사용합니다.

누구나 해결책이 있다면, 나는 모두 귀입니다.

답변

1

은 (C va_list에서의 신속한 등가 인)는 CVaListPointer 로 대체 값을 취하는

NSString(format: String, arguments argList: CVaListPointer) 

이니셜있다. 예 :

let myArrayOfFloat: [Float] = [1.2, 3.4] 
let text = withVaList(myArrayOfFloat) { 
    NSString(format: "%f and %f", arguments: $0) 
} 
print(text) // 1.200000 and 3.400000 

그러나, 단일 어레이 매개 변수로 대체 값을 취하는

String(format: String, arguments: [CVarArg]) 

초기화를 사용하여 String을 만드는 간단하다. 예 :

let myArrayOfFloat: [Float] = [1.2, 3.4] 
let text = String(format: "%f and %f", arguments: myArrayOfFloat) 
print(text) // 1.200000 and 3.400000 
+0

Yeeeesssss, 그것이 내가 찾고있는 것입니다. 고맙습니다 ;) –