2017-10-01 5 views
0

나는스위프트 (Swift)에서 함수라는 함수를 결정하는 방법은 무엇입니까? 그것은 가능한가?

struct LoginPage { 
    static let usernameField = Element("#username") 
} 

, 같은 구조체를하고 난 수업 등이 있고,

class LoginView { 
    func enterCredentails() { 
    LoginPage.usernameField.waitForExist() 
    } 
} 

Element API는 waitForExist() 내부 여기

class Element { 
    init(...) { 
    ... 
    } 

    func waitForExist() { 
    // print("caller property name") 
    } 
} 

...처럼 내가 원하는 모습 이 메서드를 트리거 한 속성 이름 (usernameField)을 가져옵니다. 그래서 errorsuccess 메시지를 동적으로 waitForExist() 안에 인쇄 할 수 있습니다.

이 가능합니까? 이 문제를 해결할 수있는 방법이 있습니까?

참고 : 나는 (I 저장하고 Element에 따라 키 이름을 검색 할 수 있도록) 모든 속성을 얻을 수 Mirror를 사용하여 시도했지만, 그것은 static 속성 (Referred를) 반환하지 않습니다. 그래서 대체 솔루션을 찾고 있습니다.

나를 도와 주셔서 미리 감사드립니다.

답변

-1

나는 간단한 방법 권하고 싶습니다 : 나는 당신의 재산이 자신의 didSet 또는 뭔가이 전화 있으리라 믿고있어

func waitForExist(propertyName: String [or possibly make it an enum]) { 
    // do what needs to be done 
} 

을; 각각이 적절한 값을 waitForExist 함수에 전달하게하십시오.

는 질문에 문자 그대로의 대답에 관해서는, 당신은 아마 backtrace() 같은 기능을 사용하여 스택을 검사 할 수 있지만, ehhhhhh ... 날 믿어, 당신은 정말 그렇게하고 싶지 않아.

관련 문제