간단한 변환 (예 : 미터법)을 사용하고 있습니다. 나는 (String, Closure) 요소를 가진 튜플 배열을 만들었다. 이렇게하면 변환을위한 문자열을 넣을 수 있습니다 (예 : "miles to 킬로미터"를 피커 컨트롤에 넣고 한 줄에 연결된 수식을 참조하여 변환 할 값을 전달하십시오. 문제는 $ 0 . 폐쇄 속기 나는 "적절한 시간에 해결하기 위해 너무 복잡 식입니다."오류가 발생Xcode Swift : 합리적인 시간에 해결하기에는 표현식이 너무 복잡합니다.
가 여기에 작동 선언 & 코드입니다 :
var formulaTuple = [(convString: String, convFormula: ((Double) -> Double))]()
: 초기 class 문 아래의 ViewController의 속성 선언
을
viewDidLoad()에 할당 됨
formulaTuple = [("miles to kilometers", {(a: Double) -> Double in return (a/0.62137) }),
("kilometers to miles", {(a: Double) -> Double in return (a * 0.62137) }),
("feet to meters", {(a: Double) -> Double in return (a/3.2808) }),
("yards to meters", {(a: Double) -> Double in return (a/1.0936) }),
("meters to feet", {(a: Double) -> Double in return (a * 3.2808) }),
("meters to yards", {(a: Double) -> Double in return (a * 1.0936) }),
("inches to centimeters", {(a: Double) -> Double in return (a/0.39370) }),
("centimeters to inches", {(a: Double) -> Double in return (a * 0.39370) }),
("fahrenheit to celsius", {(a: Double) -> Double in return ((a - 32) * (5/9)) }),
("celsius to fahrenheit", {(a: Double) -> Double in return (a * (9/5) + 32) }),
("quarts to liters", {(a: Double) -> Double in return (a/1.05669) }),
("liters to quarts", {(a: Double) -> Double in return (a * 1.05669) }) ]
코드에서 작동하는 행입니다. 여기서 row는 클릭 한 피커의 행이며, inputValue는 변환하기 위해 전달 된 것이고 outputValue는 변환 결과입니다.
outputValue = formulaTuple [행] .convFormula (inputValue의) I가있는 viewDidLoad (이 문법을 사용 선언을 트리밍 할 때
문제가 발생) 대신 상기 synatax :
formulaTuple = [("miles to kilometers", {$0/0.62137 }),
("kilometers to miles", {$0 * 0.62137 }),
("feet to meters", {$0/3.2808 }),
("yards to meters", {$0/1.0936 }),
("meters to feet", {$0 * 3.2808 }),
("meters to yards", {$0 * 1.0936 }),
("inches to centimeters", {$0/0.39370}),
("centimeters to inches", {$0 * 0.39370 }),
("fahrenheit to celsius", {($0 - 32) * (5/9) }),
("celsius to fahrenheit", {$0 * (9/5) + 32 }),
("quarts to liters", {$0/1.05669 }),
("liters to quarts", {$0 * 1.05669 }) ]
I 이것이 더 매끄럽다 고 생각했지만 Xcode가 손상된 것 같습니다. 생각? 내 접근법은 근본적으로 건전하지 못하고 다른 것이 권장 될까요? 감사합니다.
구조체는 매우 잘 작동했습니다. 나는 Tuples에서 Swift 문서를 다시 읽었으며 임시 유형에 대해 조금 더주의를 기울였다. 제안, 통찰력 및 배경을 진심으로 감사드립니다. 감사! – Gallaugher