2017-02-14 11 views
0

함수 이름 String var을 기반으로 함수를 호출하고 함수에 인수를 전달 하시겠습니까? 나는 이것을 신속하게하려고 노력하고 마침내 그것을 얻었다. 스위프트 3에서swift 3 인수가있는 선택자 수행

답변

0

- 인바운드 '의 PARAMS'로 [문자열 : 모든, PARAMS [ "기능"] == "getSomeData는"

let funcName = String(format: "%@:", (params["function"] as? String)!) 
let selector = NSSelectorFromString(funcName) 
self.perform(selector, with: params) 

func getSomeData(_ params: [String: Any]) { 
    print(params) 
} 
+0

귀하의 솔루션은 작동하지만,하지 않는 것이 좋습니다. Swift는 문자열에서 선택자를 만드는 것으로 옮겨 가고 있습니다. 스위프트가 가까운 장래에이 능력을 완전히 없애 버리면 전혀 놀랄 일이 아닙니다. 오히려 함수 시그니처의 Swift 버전을 사용해야하며 문자열에서 선택기를 작성하지 않아야합니다. –

+1

추천 방법은 무엇입니까? –

+0

예 Duncan C, 의견에 감사드립니다. 하지만 미안하지만 건설적이지 않습니까? 이 조언 뒤에있는 코드는 어디에 있습니까? – user3069232