2012-02-23 3 views
0

많이 사용하게되고 여러 개의 단추를 반환하는 사용자 지정 도우미 메서드를 작성하고 있습니다. 물론 각 버튼은 눌렀을 때 자체 타겟 선택기를 가지며 반환 된 버튼에 지정된 선택자가 있도록이 선택기를 매개 변수로이 메소드에 전달하려고합니다.메서드 매개 변수로 선택기 이름 전달

그러나 메서드 매개 변수로 선택기를 전달하는 방법을 잘 모르겠습니다. 다음과 같은 것 :

-(returnedInstance)someMethod:(WhatClass?*)selectedFunction{ 

[SomeClassWithASelectorParameter method:whatever selector:@selector(selectedFunction)]; 

} 

여기에서 selectedFunction은 메소드에 전달 된 매개 변수입니다.

나는 WhatClass?*있는 NSString 또한 SEL 만드는 시도하지만 결과 :

[있는 NSInvocation invocationWithMethodSignature :] 왜 그냥 SEL를 통과하지 못한 방법 서명 인수가

+0

사용 선택기를 전달할 'SEL'. 'selectedFunction' 만 사용하여'@selector (..)'를 제거하십시오. – HelmiB

답변

4

전무가 될 수없는 이유는 무엇입니까? 즉 셀렉터이다. 그래서 같이 : 또는

-(returnedInstance)someMethod:(SEL)selectedFunction{ 
    [SomeClassWithASelectorParameter method:whatever selector:selectedFunction]; 
} 

, NSSelectorFromString :

-(returnedInstance)someMethod:(NSString*)selectedFunction{ 
    [SomeClassWithASelectorParameter method:whatever selector:NSSelectorFromString(selectedFunction)]; 
} 
+0

+1 모두, 30 초 늦었 ... ... –

+0

Hehe 감사 :-). 그것은 SO에 대한 나의 가장 좋아하는 것 중 하나입니다 - 완전하고 간결한 대답을 유지하면서 답변에 대한 다른 사람들을 경주하십시오. 내 질문에 표시된대로 – mattjgalloway

+0

, 나는 행운과 함께 SEL을 사용하여 시도; 내가 게시 한 오류가 발생했습니다. – johnbakers

1

당신은 SEL를 사용하려면, 당신은 그것을 참조 할 때, 당신은 selector 사용할 필요가 없습니다 :

-(returnedInstance)someMethod:(SEL)selectedFunction{ 

    [SomeClassWithASelectorParameter method:whatever selector:selectedFunction]; 

}